Пространство Laravel и упаковка / Laravel-Transhable -> Сделать запрос поиска для специального символа
Я использую пакет Spatie/laravel-transhable для хранения моих переведенных данных в формате json в базе данных.
У меня есть заголовок столбца:
{
"fr":"L\u2019\u00e9quipe",
"en":"Team",
"de":"Team"
}
Как видите, с пакетом специальные символы преобразуются в юникод.
Когда я хочу искать, это не работает (это логично, потому что я ищу слово équipe
но в базе данных написано \u00e9quipe
)
$search = $request->get('search')
Events::where('title', 'LIKE', '%' . $search . '%')->published()->get();
Как искать в Юникоде, чтобы он работал?
Спасибо
2 ответа
использовать
$this->attributes[$key] = json_encode($translations, JSON_UNESCAPED_UNICODE);
вместо
// $this->attributes[$key] = $this->asJson($translations);
в признаке Spatie\Translatable\HasTranslations
$search = $request->get('search');
Events::whereRaw('title COLLATE utf8mb4_unicode_ci LIKE ?', ['%' . $search . '%'])
->published()
->get();