提问者:小点点

Symfony 2.8 Easyadmin DataTransformer,用于枚举(是,否)字段,以表示形式的布尔值


我使用easyadmin生成后端需求。我真的很喜欢在列表视图中使用漂亮的关闭/开启ui功能来控制布尔值。

但是我不使用布尔值作为tinyint(1)1或0,而是使用ENUM('yes','no')。因此,在symfony表单中,我使用DataTransformer在发送到视图时将yes转换为1,在发送到模型时将1转换为yes。但我找不到任何相关文档,我如何在easyadmin中使用数据转换器或事件侦听器。我看到easyadmin中存在多个调度和事件。

事件

您知道如何添加dataTransformer或事件侦听器吗。

任何帮助都将不胜感激。


共1个答案

匿名用户

我找到了另一个解决方案,它解决了这个问题,而不需要任何数据转换器或监听器。在文档中,它提到了虚拟实体方法。所以我提出了以下与任何实体属性都没有直接关系的方法。

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 ?'}

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