我已经阅读了几篇类似的帖子并尝试了它们,但它仍然不适用于我的网站。
当我搜索“认为”这个词时,搜索结果显示“我认为就是这样”。但是,当我搜索“我认为”时,结果是“找到 0 个匹配项”。
所以为了实现多词搜索,我做了以下:
控制器.php
$keyword = "I think"
$words = explode(' ', $keyword);
$data = Post::where(function ($query) use ($words)
{
foreach($words as $word){
$query->where('example', 'LIKE', '%' . $word . '%');
}
})->get();
但是,结果是一样的。“思考”显示结果。“我认为”没有任何结果。
也调试了dd($data)
// $keyword = "think"
"select * from `posts` where (`example` LIKE ?)"
// $keyword = "I think"
"select * from `posts` where (`example` LIKE ? and `example` LIKE ?)"
那么会有什么问题呢?谢谢你。
[附加信息(已编辑)]
$bindings = $query->getBindings();
dd($bindings);
// array:2 [▼
0 => "%I%"
1 => "%think%"
]