Я вернулся к работе с пакетами администратора Sonata, и у меня возник вопрос, связанный с пакетом перевода Sonata (расширение Gedmo Doctrine) с базовым переводом одной таблицы.Согласно документации, нам нужно установить default_locale
и список locales
для проекта в нашем конфигурационном файле.Этот шаблон отлично работает для проектов с фиксированными локалями.Но в моем случае (который я считаю также очень распространенным) я хочу, чтобы он был немного динамичным в зависимости от сохраненной конфигурации.
Существуют объекты сущностей с именем Game
, которые имеют реляционную сущность (oneToMany)называется Language
, с помощью которого можно установить несколько языков для Game
и установить один из них как default_locale
.Теперь, в моей административной панели CRUD, я хочу, чтобы это было отражено согласно конфигурации, если она уже определена.Иначе, чтобы иметь запасной языковой стандарт.
Таким образом, все будет примерно так: 1. Установите запасной языковой стандарт из языкового стандарта вошедшего в систему пользователя.2. Языковые опции для Game
CRUD должны исходить из локалей, определенных в Game -> Languages
.
Насколько я пытался, я могу изменить список «локалей» из configuration()
метод в классе администратора, но так как субъект не присутствует в этом методе ($ this-> getSubject () = null), фиксированная строка работает, но динамические значения из свойства объекта не могут быть установлены.
Версии моего проекта:
PHP: 7.2
Symfony: 3.4
Sonata-Core-Bundle: 3.11.2
Sonata-Admin-Bundle: 3.40.1
Sonata-Translation-Bundle: 2.3.1
STOF-Doctrine-Bundle: 1.3.0
GEDMO-Extension-Bundle: 2.4.36
NB. Из-за отсутствия репутации я не смог добавить тег с именем ' sonata-translation-bundle '.Если кто-то из вас может, добавьте тег, чтобы его можно было легко сортировать.