Я использую 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 без проблем.