Symfony 2.8 Easyadmin DataTransformer for enum(yes, no) 字段表示


Symfony 2.8 Easyadmin DataTransformer for enum(yes, no) fields to represent boolean in forms

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

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

事件

您是否知道如何最好添加数据转换器或事件侦听器。

任何帮助将不胜感激。

我找到了另一种解决方案,无需数据转换器或侦听器即可解决问题。在文档中,它提到了虚拟实体方法。所以我放了以下与任何实体属性没有直接关系的方法。

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

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