我有以下查询
$objects = Object::where('user_id', auth()->user()->id)
->where('object_name','LIKE','%'.$request->search."%")
->get();
Run Code Online (Sandbox Code Playgroud)
这将返回包含关键字的当前用户的所有对象.这仅搜索object_name列中的关键字.
因为我想内同时进行搜索object_name和object_description,我增加了一个orWhere条款如下:
$objects = Object::where('user_id', auth()->user()->id)
->where('object_name','LIKE','%'.$request->search."%")
->orWhere('object_description','LIKE','%'.$request->search."%")
->get();
Run Code Online (Sandbox Code Playgroud)
现在,这会返回一个包含关键字的所有对象object_name或object_description,但它搜索整个用户群内.
我想要的是更改此查询,以便我可以在object_name或中搜索关键字object_description,但搜索范围必须限制为当前登录用户.
小智 7
您应该像这样更改您的查询
$search = $request->search;
$objects = Object::where('user_id', auth()->user()->id)
->where(function($query) use ($search) {
$query->where('object_name','LIKE',"%{$search}%")
->orWhere('object_description','LIKE',"%{$search}%");
})
->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |