用关系搜索 - Laravel 5.3

时间:2016-12-01 20:35:43

标签: laravel model relationship laravel-5.3

我正在制作搜索功能,用户可以在其中键入名称。这是我正在做的查询:

   public function api(Request $request)
    {
        $query = request()->get('query');

        $results = Listing::searchAndCache($query);

        return $results;
    }

点击这个:

 public static function searchAndCache($query)
    {
        return self::where('name','like','%'.$query.'%')->where('live',true)->paginate(15);
    }

我还需要搜索' location'随着这个查询,问题是它在一个不同的表中。型号名称为Location。我的问题是如何将模型位置附加到此查询?

理想情况下,我想为查询执行此操作:

 public static function searchAndCache($query)
    {
        return self::where('name','like','%'.$query.'%')->where('region','like','%'.$query.'%')->where('live',true)->paginate(15);
    }

1 个答案:

答案 0 :(得分:1)

对于搜索,您可以使用searchable特征。所以你可以这样做:

Listing::where('live',true)->search($query)->paginate(15);

如果列表和位置之间存在关系,您可以使用Laravel重新绑定来执行此类操作

Listing::where('live',true)
         ->search($query)
         ->location
         ->search($query2)
         ->paginate(15);