寻求帮助。我有下面的代码,但它无法执行搜索的查询。我只需要查看基于用户id的搜索数据。
$id = Auth::id();
$promo = User::with('promos');
if($request->input('q')){
$promo->whereHas('promos', function ($query) use ($request) {
$query->where('title', 'LIKE', "%{$request->input('q')}%");
});
return view('admin.promo.index',[
'promos' => $promo->find($id)
]);
}
return view('admin.promo.index',[
'promos' => $promo->find($id)
]);
您可以使用whereHas
:从Promo
侧执行此操作
return view('admin.promo.index', [
'promos' => Promo::whereHas('user', fn ($q) => $q->whereKey(Auth::id()))
->when($request->input('q'), fn ($q, $input) => $q->where('title', 'LIKE', "%$input%"))
->get()
]);
您可以使用when
方法,而不是使用if
语句。