Laravel UTF-8 к базе данных

Я использую Eloquent для сохранения () нового человека в моей базе данных. Имя лица содержит специальный символ é и он не подчиняется. Вот мои шаги и результаты.

echo Input::get('firstname'); // Miguél

что дает мне этот

Miguél

когда я начинаю использовать eloquent, происходит следующее.

$person = new Person();
echo $person->firstname = Input::get('firstname'); 

это дает следующий результат

мигу л

любая идея, что может быть не так? Это моя конфигурация настройки в laravel

enter image description here

и это моя база данных в phpmyadmin

enter image description here

спасибо

1 ответов


Я не думаю, что у него есть что-то общее с базой данных.

при использовании:

$person = new Person();
echo $person->firstname = Input::get('firstname'); 

вы не используете базу данных здесь. Вы просто назначаете свойства классу Person (который, вероятно, использует Eloquent), но вы ничего не помещаете в базу данных и ничего не получаете из базы данных, поэтому невозможно, чтобы проблема кодирования имела что-то общее с самой базой данных

потенциальная проблема на мой взгляд - вы определили мутатор в Person класс firstname атрибут, потому что у вас он в нижнем регистре (когда вы получаете его от ввода, он с заглавной буквы), поэтому вы, вероятно, используете какую-то функцию, такую как strtolower и вы должны использовать mb_strtolower для преобразования строк UTF-8 без проблем.