我使用easyadmin生成后端需求。我真的很喜欢在列表视图中使用漂亮的关闭/开启ui功能来控制布尔值。
但是我不使用布尔值作为tinyint(1)1或0
,而是使用ENUM('yes','no')
。因此,在symfony表单中,我使用DataTransformer
在发送到视图时将yes转换为1
,在发送到模型时将1转换为yes
。但我找不到任何相关文档,我如何在easyadmin中使用数据转换器或事件侦听器。我看到easyadmin中存在多个调度和事件。
事件
您知道如何添加dataTransformer或事件侦听器吗。
任何帮助都将不胜感激。
我找到了另一个解决方案,它解决了这个问题,而不需要任何数据转换器或监听器。在文档中,它提到了虚拟实体方法。所以我提出了以下与任何实体属性都没有直接关系的方法。
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:
config如下所示
entities:
Members:
list:
fields:
- { property: 'boolHost', type: 'toggle', label : 'Is Host ?'}
我希望这对需要解决这类问题的人有所帮助。