@AlexKuznec

MySQL и Yii2 GridView: фильтрация на русском языке становится регистрово-зависимой?

Есть таблица на MySQL 5.7 с кодировкой utf8mb4_unicode_ci и сгенерированные к ней c помощью Gii модель, модель поиска, CRUD.
На форме index.php стандартный GridView с фильтрацией по полям. Только слова на английском находятся независимо от регистра, а на русском - с учетом регистра, что мне совсем не надо.
Дебаггер показывает, что в запросах слова отсылаются в базу в том же виде, как я написал, то есть, Yii2 вроде как ничего не преобразует.

Подскажите, что можно сделать? Подозреваю, дело в MySQL? Везде использую кодировки utf8mb4_unicode_ci

UPD: Сейчас посмотрел, у меня charset в конфиге Yii2 для базы закомментирован, думал из базы берется, но вдруг нет? Попробовал поставить 'utf8' и 'utf8mb4' - весь русский текст в каракули превращается. По умолчанию что там ставится?

UDP2: добавил в настройки подключения 'charset' => 'utf8mb4', создал запись с текстом 'Тест', теперь ищет независимо от регистра. Похоже, придется все данные заново импортировать, чтобы под кодировку встали... а казалось, что всё работало...
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
@AlexKuznec Автор вопроса
Оказалось, что проблема была в настройках подключения к базе данных, а именно, я закомментировал явную установку кодировки шрифтов.
'db' => [
            'class' => 'yii\db\Connection',
            ...
            'charset' => 'utf8mb4',
            ...
        ],

Явная установка кодировки превратила все русские записи из базы в каракули, но экспорт и импорт данных заново (это делалось средствами Yii2) всё решил.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы