猿问

如何使用 Laravel QueryBuilder 搜索 OR

我需要搜索包含$msg 中传递的单词之一的每条消息(可能为 1 到 X 个单词)。


我的代码用 AND 搜索,所以我只得到包含 $msg 中所有单词的消息。我喜欢用 OR 做同样的事情。


$words = explode(' ', $msg);

$search = [];

foreach($words as $word){

    $search[] = ['rawtext', 'LIKE', '%'.$word.'%'];

}

$messages_search = Message::where($search)->get();


慕运维8079593
浏览 133回答 1
1回答

叮当猫咪

$messages_search = Message::where(function ($query) use ($words) {  foreach ($words as $word) {    $query->orWhere('rawtext', 'like', '%' . $word . '%');  }})->get();试试这个代码..
随时随地看视频慕课网APP
我要回答