我有一個標籤字段的表單。標籤是綁定實體上的Doctrine ArrayCollection。本場是by_reference = false作爲文檔的建議,但形式結合到實體的行爲違法,同時加入新的元素,比如:Symfony2收集字段by_reference = false與setter
$data=$entity->getTags(); //gets the ArrayCollection but does not care that it is not an array, and shoulrd be converted first
//do the value modifications like:
$data[]=new Tag(...);
$entity->setTags($data); //poor setter gets called with the already-updated collection, this operation is pointless
我計算過,by_reference假是來避免這個問題。如果是,那麼它出現故障。如果沒有,那麼該文檔是非常差,有一個ArrayCollections的例子,但不關心這個非常殘忍的setter的忽略...
我應該用什麼來代替?在getter中返回一個toArray()是不行的(顯然,設計模型與兼容性差的表單實現是不合理的。是否有類似'collection'的類型強制轉換爲數組?
對不起,我可能已經混亂:在問題的代碼的意思爲了說明FormType是如何操作的,它不是我的代碼,除了$ form-> bindRequest(...)和一個字段defi nition。 –
Symfony 2.0或2.1? –
2.0(我會轉向2.1但現在買不起)。 –