- with、when、where多条件闭包、orwhereHas闭包
keyword 模糊匹配 relation、price、discount三张表的名称字段,任意匹配则返回。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $keyword = request('keyword', '');
// keyword 模糊匹配 relation、price、discount三张表的名称字段,任意匹配则返回 $collection = RelationsPriceDiscountLists::where('user_id', $user->id) ->orderBy('id', 'desc') ->with('price', 'discount') // when-变量存在时执行 ->when($keyword, function ($query) use ($keyword) { // 多条件where闭包 $query->where(function ($query) use ($keyword) { $query->where('name', 'like', "%{$keyword}%") ->orwhereHas('price', function ($query) use ($keyword) { $query->where('name', 'like', "%{$keyword}%"); }) ->orwhereHas('discount', function ($query) use ($keyword) { $query->where('name', 'like', "%{$keyword}%"); }); }); });
$collection = $collection->latest()->paginate();
return new PublicCollection($collection);
|