我正在尝试为我的网站创建搜索引擎。除非单词中带有重音,否则它会起作用。
例如,如果我有标题:“MuséeBaudouin”,如果我写“ Musee Baudouin”或“MuséeBaudouin”,则不会显示任何内容。如果我只写“ Baudouin”,那就行了。
如果文章的标题带有重音,我找不到我的文章。
怎么办?
public function searchNav(Request $request)
{
$search = $request->get('search');
$buildings = Building::where('title', 'LIKE', '%' . $search . '%')->orWhere('city', 'LIKE', '%' . $search . '%')->published()->get();
$events = Event::where('title', 'LIKE', '%' . $search . '%')->orWhere('city', 'LIKE', '%' . $search . '%')->published()->get();
// Create a new collection and merge elements
$all = new Collection();
$all = $all->merge($buildings);
$all = $all->merge($events);
$all = $all->sortByDesc('updated_at');
$this->data['items'] = $all->all();
return view('pages.search-nav-results', $this->data);
}
谢谢
答案 0 :(得分:2)
这听起来像是编码问题,这意味着您当前的编码不支持带重音符号的字符。这是一种使用UTF-8编码创建MySQL数据库的方法,该编码肯定会支持示例中的重音字符:
CREATE DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
这将解决MySQL的问题,假设您尚未使用支持这些重音字符的编码。在PHP方面,它有点复杂,但是您还需要确保支持正确的编码。我指的是一个good blog site,其中涵盖了PHP的详细信息。