我是symfony(2.1)的新手,我有一個簡單的問題,我想改變「實體字段類型」在選擇標籤中生成選擇列表的方式。如何在Symfony 2.1中自定義實體字段類型,以便使用特定的存儲庫方法?
在我categoryType.php,在buildForm方法我有這樣的事情:
$builder
->add('parent', 'entity', array(
'class' => 'TestAdvBundle:Category',
'property' => 'name',
'label' => 'label.parent',
))
;
這工作得很好,這是在DB堅持所有類別的實體存在於生成的表單選擇標籤。但是我想要做的是稍微改變這個生成的選擇列表。實際上,我希望列表中的一個「假」選擇代表「根類別」,並且我不希望我編輯的對象在此列出(此字段是父級ID,並且它指向與編輯對象相同的對象類型等等這個字段是我編輯的類別的父類別,所以實際上我不希望能夠選擇自己作爲父類別)。
我想這個「實體字段類型」使用findAll()
存儲庫方法來獲取其結果。所以我做了特定的findAllForList()
方法,我返回想要的數組。但是我找不到一種方法來告訴「實體字段類型」使用我的存儲庫方法而不是findAll()
。