我需要搜索包含$msg 中传递的单词之一的每条消息(可能为 1 到 X 个单词)。我的代码用 AND 搜索,所以我只得到包含 $msg 中所有单词的消息。我喜欢用 OR 做同样的事情。$words = explode(' ', $msg);$search = [];foreach($words as $word){ $search[] = ['rawtext', 'LIKE', '%'.$word.'%'];}$messages_search = Message::where($search)->get();
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
$messages_search = Message::where(function ($query) use ($words) {
foreach ($words as $word) {
$query->orWhere('rawtext', 'like', '%' . $word . '%');
}
})->get();
试试这个代码..
- 1 回答
- 0 关注
- 132 浏览
添加回答
举报
0/150
提交
取消