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
或原始查询。不管怎样谢谢斯拉维尔没有或者你在哪里,应该在哪里或者在哪里