Laravel UTF-8 для базы данных

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

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

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

Мигелем

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

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

Это приводит к следующему результату:

Мигуль

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

введите описание изображения здесь

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

введите описание изображения здесь

благодаря

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

Когда вы используете:

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

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

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