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 中存在多个调度和事件。

Events

你知道我怎样才能更好地添加 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 ?'}

希望对需要解决此类问题的人有所帮助。