我正在制作搜索功能,用户可以在其中键入名称。这是我正在做的查询:
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);
}
答案 0 :(得分:1)
对于搜索,您可以使用searchable特征。所以你可以这样做:
Listing::where('live',true)->search($query)->paginate(15);
如果列表和位置之间存在关系,您可以使用Laravel重新绑定来执行此类操作
Listing::where('live',true)
->search($query)
->location
->search($query2)
->paginate(15);