首页 > 解决方案 > 如何从 laravel 控制器中的 3 个(多个)表中搜索数据?

问题描述

桌子

我想进行搜索以显示输入包含扬声器名称的扬声器,并显示输入包含扬声器topicname的扬声器

我试着做

$speaker = Speaker::where ('name','like','%'.$search.'%')->orWhere ........ 

我应该在andWhere条款中做什么?

标签: laraveleloquent

解决方案


据我了解,您想按演讲者姓名或演讲者主题名称搜索

假设您在模型之间设置了关系,这是我的代码:

    $speaker = Speaker::where('name','like','%'.$search.'%')
        ->orWhereHas('Detail', function(Builder $query) use ($search){
            $query->whereHas('Topic', function(Builder $subQuery) use ($search){
                $subQuery->where('topicname', 'like','%'. $search . '%');
            });
        })->get();

参考:https ://laravel.com/docs/8.x/eloquent-relationships#querying-relationship-existence


推荐阅读