Symfony 2.8 Easyadmin DataTransformer for enum(yes,no)字段表示形式中的布尔值

时间:2016-02-13 11:32:44

标签: php symfony symfony2-easyadmin

我使用easyadmin来生成后端需求。我非常喜欢在列表视图中使用nice off / off ui功能来控制布尔值。

但是我没有将布尔值用作tinyint(1) 1 or 0,我使用ENUM('yes', 'no')。因此,在symfony表单中,我使用DataTransformer在发送到视图时转换yes to 1,在发送到模型时转换1 to yes。但我无法找到任何相关文档,我怎样才能在easyadmin中使用数据转换器或事件监听器。我看到easyadmin中存在多个调度和事件。

Events

您是否知道我最好如何添加dataTransformer或事件监听器。

任何帮助都将不胜感激。

1 个答案:

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

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