2016-02-13 29 views
0

我使用easyadmin來生成後端需求。我真的很喜歡在列表視圖中很好地關閉/打開UI功能來控制布爾值。Symfony 2.8 Easyadmin DataTransformer用於枚舉(是,否)字段以表示表單中的布爾值

但我不使用布爾值作爲tinyint(1) 1 or 0,我用ENUM('yes', 'no')。因此,在symfony表單中,我使用DataTransformer在發送到查看時將yes to 1轉換爲,並且在發送到模型時使用1 to yes。但是我找不到任何相關的文檔,我怎麼能在easyadmin中使用數據轉換器或事件監聽器。我在easyadmin看到了一些調度和事件。

Events

你有什麼想法,我怎麼能添加dataTransformer最好,或事件偵聽器。

任何幫助,將不勝感激。

回答

2

我找到了另一種解決方案,可以解決這個問題,而不需要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 ?'} 

我希望它幫助的人誰需要一個解決方案來樣這個問題。