cod*_*iaf 4 laravel eloquent laravel-5 laravel-5.1
我有一个查询,在几列中搜索一个术语,其中一个必须是一个全名.
我已经在名称和姓氏中分隔了全名,所以我必须在搜索时连接这两个值.
我现在只有搜索名字.我如何将concat添加到姓氏?我正在调查变异器,但我不知道是不是这样.
public function search($searchQuery)
{
$search = "%{$searchQuery}%";
return Order::with('customer')
->orWhereHas('customer', function($query) use ($search){
$query->where('dni', 'like', $search);
})
->orWhereHas('customer', function($query) use ($search){
$query->where('name', 'like', $search);
})
->orWhere('code', 'like', $search)
->paginate(15);
}
Run Code Online (Sandbox Code Playgroud)
Bog*_*dan 11
Mutators不是这里的方法,因为它们不会影响您正在构建的查询,它们仅用于存储在模型中的值.但是,您可以使用以下条件:
$query->where(DB::raw('CONCAT_WS(" ", name, lastname)'), 'like', $search);
Run Code Online (Sandbox Code Playgroud)
MySQL函数CONCAT_WS将连接两个字符串,将它们与作为第一个参数传递的字符串粘合在一起.因此,在这种情况下,如果名字是John和姓氏是Smith,则将对此条件进行评估"John Smith" like "%query%".将DB:raw用于避免进行转义条件这将使围绕置语句反引号的第一部分.
| 归档时间: |
|
| 查看次数: |
1893 次 |
| 最近记录: |