【发布时间】:2020-08-13 06:11:14
【问题描述】:
我有两个表,第一个是 Category 表,其中包含 id 和 name 列。
第二个表是Product,它有id、category_id 和name 列。
public function category() {
return $this->belongsTo(Category::class);
}
我的问题是如何在一个 Eloquent 或 DB 查询中搜索产品名称和类别名称?
我尝试了下面的代码,它适用于产品名称,但是当我搜索类别名称时它什么也没返回。
$searchText = $request->input('search');
Product::query()
->where(function($query) use($searchText){
if($searchText) {
$query->where('name', 'LIKE', '%'.$searchText.'%')
->orWhere(function($query2) use($searchText) {
$query2->with(['category' => function($query3) use ($searchText){
$query3->where('name', 'like', '%'.$searchText.'%');
}]);
});
}
})
->paginate(8);
另外,我想问一下这个场景用 Eloquent 还是 DB 最好?
【问题讨论】:
-
你签到
whereHas/orWhereHas了吗? laravel.com/docs/7.x/…
标签: laravel eloquent laravel-6