Symfony 2.8 Easyadmin DataTransformer 用于枚举(是,否)字段以表示表单中的布尔值
Symfony 2.8 Easyadmin DataTransformer for enum(yes, no) fields to represent boolean in forms
我使用 easyadmin 生成后端 needs.I 非常喜欢通过列表视图中的关闭/打开 ui 功能来控制布尔值。
但我不使用布尔值作为 tinyint(1) 1 or 0
,我使用 ENUM('yes', 'no')
。因此,在 symfony 表单中,我使用 DataTransformer
在发送到视图时转换 yes to 1
,在发送到模型时使用 1 to yes
。但是我找不到任何相关文档如何在 easyadmin 中使用数据转换器或事件监听器。我看到 easyadmin 中存在多个调度和事件。
你知道我怎样才能更好地添加 dataTransformer 或事件侦听器吗?
如有任何帮助,我们将不胜感激。
我找到了另一种解决方案,无需 DataTransformers 或 Listeners 即可解决问题。在 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 ?'}
希望对需要解决此类问题的人有所帮助。
我使用 easyadmin 生成后端 needs.I 非常喜欢通过列表视图中的关闭/打开 ui 功能来控制布尔值。
但我不使用布尔值作为 tinyint(1) 1 or 0
,我使用 ENUM('yes', 'no')
。因此,在 symfony 表单中,我使用 DataTransformer
在发送到视图时转换 yes to 1
,在发送到模型时使用 1 to yes
。但是我找不到任何相关文档如何在 easyadmin 中使用数据转换器或事件监听器。我看到 easyadmin 中存在多个调度和事件。
你知道我怎样才能更好地添加 dataTransformer 或事件侦听器吗?
如有任何帮助,我们将不胜感激。
我找到了另一种解决方案,无需 DataTransformers 或 Listeners 即可解决问题。在 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 ?'}
希望对需要解决此类问题的人有所帮助。