Я являюсь автором учебника.
Весь смысл этой реализации в том, что вам вообще не нужно беспокоиться о локали модели.Локаль задается через URL-адрес "/en/..."
. Поэтому, если вы отправляете запрос POST на URL-адрес магазина модели, например:
POST /en/post {payload}
Локаль приложения вашегоПриложение laravel будет автоматически настроено еще до того, как вы достигнете метода PostController@store
.
Затем вы можете просто создать свою модель, как вы это обычно делаете (как в вашем примере, это правильно), и модель будетхранится с соответствующей локалью.
Теперь, когда ваша модель изначально создана с определенной локалью, вы сможете редактировать ее на другом языке.
Таким образом, вы можете перейти по этому URL: /en/post/:id/edit
, затем переключитесь на другую локаль: /fr/post/:id/edit
, и вы заметите, что все вводимые поля являются пустыми.Это нормально, потому что перевод 'fr' этой модели еще не существует.
Таким образом, вы можете заполнить форму с переведенным полем 'fr', а затем сохранить (обновить модель).И перевод будет сохранен.Ваша модель теперь переведена:)
Надеюсь, это поможет!
PS Вы можете посмотреть пример кода здесь https://github.com/mydnic/Laravel-Multilingual-SEO-Example