Пространство 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();
Другие вопросы по тегам