Я использую easyadmin для генерации потребностей в бэкенде. Мне очень понравилось управлять булевыми значениями с помощью функции включения / выключения пользовательского интерфейса в виде списка.
Но я не использую логические значения как tinyint(1) 1 or 0
Я использую как ENUM('yes', 'no')
, Так что в формах Symfony я использую DataTransformer
преобразовать yes to 1
при отправке на просмотр, и 1 to yes
при отправке на модель. Но я не смог найти никакой соответствующей документации, как я мог бы использовать преобразователь данных или прослушиватель событий в easyadmin. Я вижу несколько рассылок и событий в easyadmin.
Есть ли у вас какие-либо идеи, как я мог бы добавить dataTransformer или прослушиватель событий?
Любая помощь будет оценена.
Я нахожу другое решение, которое решает проблему без необходимости использования DataTransformers или Listeners. В доктор это упоминает о методах виртуальной сущности. Поэтому я добавил следующие методы, которые не связаны напрямую ни с какими свойствами объекта.
public function setBoolHost($isHost)
{
return $this->setHost($isHost ? EntityInterface::YES : EntityInterface::NO);
}
public function getBoolHost()
{
return ($this->getHost() == EntityInterface::YES) ? true : false;
}
Так в config.yml easy_admin:
конфиг выглядит следующим образом
entities:
Members:
list:
fields:
- { property: 'boolHost', type: 'toggle', label : 'Is Host ?'}
Я надеюсь, что это помощь кому-то, кому нужно решение этой проблемы.
Других решений пока нет …