我需要查找where子句有3条件的数据,所以它需要OR操作符两次,这是我的控制器中的代码,我使用了laravel 8
$salesTransactions = SalesTransaction::when($request->keyword, function ($query) use ($request) {
$query
->where('tanggal_transaksi', 'like', "%{$request->keyword}%")
->orWhere('name', 'like', "%{$request->keyword}%")
->orWhere('status', 'like', "%{$request->keyword}%");
})->join('distributors', 'distributors.id', '=', 'sales_transactions.distributor_id')
->join('users', 'users.id', '=', 'distributors.user_id')
->select('sales_transactions.*', 'users.name')
->orderBy('tanggal_transaksi', 'DESC')->latest('sales_transactions.id')->paginate(25);
我得到了错误,但不知道如何解决,问题是我不能使用或操作两次,知道吗?谢谢
发布于 2022-02-17 07:54:41
如果需要将“或”条件分组到括号内,则可以将闭包作为第一个参数传递给orWhere方法。比如:
$users = DB::table('users')
->where('votes', '>', 100)
->orWhere(function($query) {
$query->where('name', 'Abigail')
->where('votes', '>', 50);
})
->get();
https://stackoverflow.com/questions/71153147
复制相似问题