我使用easyadmin来生成后端需求。我非常喜欢在列表视图中使用nice off / off ui功能来控制布尔值。
但是我没有将布尔值用作tinyint(1) 1 or 0
,我使用ENUM('yes', 'no')
。因此,在symfony表单中,我使用DataTransformer
在发送到视图时转换yes to 1
,在发送到模型时转换1 to yes
。但我无法找到任何相关文档,我怎样才能在easyadmin中使用数据转换器或事件监听器。我看到easyadmin中存在多个调度和事件。
您是否知道我最好如何添加dataTransformer或事件监听器。
任何帮助都将不胜感激。
答案 0 :(得分:3)
我找到了另一个解决问题的解决方案,无需任何DataTransformers或Listener。在Doc中,它提到了虚拟实体方法。因此,我将以下方法直接与任何实体属性相关联。
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 ?'}
我希望对需要解决此类问题的人有所帮助。