我想在 laravel 中實現正確的查詢,如果有人可以幫助我有此查詢SELECT * FROM `users` WHERE ((`is_verified` = 1) AND (`first_name` like '%%' or `middle_name` like '%%' or `last_name` like '%%' or `email` like '%%'))我的代碼中有這個$user->where([ ['is_verified', '=', 1] ]) ->where('first_name', 'like', "%$search%") ->orWhere('middle_name', 'like', "%$search%") ->orWhere('last_name', 'like', "%$search%") ->orWhere('email', 'like', "%$search%");但它產生SELECT * FROM `users` WHERE ((`is_verified` = '1') and `first_name` like '%%' or `middle_name` like '%%' or `last_name` like '%%' or `email` like '%%')
2 回答

翻閱古今
TA貢獻1780條經驗 獲得超5個贊
您必須在“closure-where”子句中使用匿名函數。
$user->where([ ['is_verified', '=', 1] ])->where(function ($query) use ($search) { $query->where('first_name', 'like', "%$search%") ->orWhere('middle_name', 'like', "%$search%") ->orWhere('last_name', 'like', "%$search%") ->orWhere('email', 'like', "%$search%"); });

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
您必須使用匿名函數,如下代碼所示:
User::where(function ($query){ $query->where('is_verified', 1); })->where(function ($query) use ($search) { $query->where('first_name', 'like', "%$search%") ->orWhere('middle_name', 'like', "%$search%") ->orWhere('middle_name', 'like', "%$search%") ->orWhere('email', 'like', "%$search%"); })->toSql();
- 2 回答
- 0 關注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消