Laravel 具有多列的雄辩WHERE LIKE子句
我正在实现一个搜索栏,可以按名字、姓氏或两者来搜索客户。例如,Laravel 具有多列的雄辩WHERE LIKE子句,laravel,eloquent,Laravel,Eloquent,我正在实现一个搜索栏,可以按名字、姓氏或两者来搜索客户。例如,Mike Hizer将与Mike,Hizer,zer,Mike Hizer,等等匹配。下面是我的想法: Customer::where( DB::raw('concat(first_name," ",last_name)'), 'like', "%{$request->search}%" )->get() 它起作用了。但是,有没有一种更为雄辩的方法来组合这两个列(first_name和last_name),而不借
Mike Hizer
将与Mike
,Hizer
,zer
,Mike Hizer
,等等匹配。下面是我的想法:
Customer::where(
DB::raw('concat(first_name," ",last_name)'), 'like', "%{$request->search}%"
)->get()
它起作用了。但是,有没有一种更为雄辩的方法来组合这两个列(first_name
和last_name
),而不借助DB facade?你想要什么
->where(['first_name','last_name'], 'like', "%{$request->search}%")
可能实现吗
$query = User::where('id', '=', '2');
$query->where('first_name', 'LIKE', "%$search%");
$query->or_where('last_name', 'LIKE', "%$search%");
$users = $query->get();
尝试这种方法。如果不想使用
DB
外观,可以使用whereRaw方法:
Customer::whereRaw('concat(first_name," ",last_name) like ?', "%{$request->search}%")->get();
希望这有帮助 你查过拉拉维尔童子军了吗?它提供了一个简单的、基于驱动程序的解决方案,可以将全文搜索添加到您雄辩的模型中。@Denis Priebe Yea,我应该研究一下,谢谢!很好,这正是我使用的方法。我只是想知道Eloquent是否有现成的功能,没有
DB
或原始查询。不管怎样谢谢斯拉维尔没有或者你在哪里,应该在哪里或者在哪里