場屬性比方說,我們有一個表單生成器定義這樣一種形式:變化運行
$builder
->add('username', 'text', ['disabled' => false]);
我們可以改變一個form.username
項目的屬性disabled
的$form
實例被創建後?
我發現,你可以用
$formBuilder->get('username')->getAttributes('data_collector/passed_options')['data_collector/passed_options']
獲得的屬性,然後用相應setAttributes
更換。
但它看起來超級骯髒。
我發現的另一種替代方法是$formBuilder->remove
和->add()
元素回來。這也是醜陋的。
那麼,任何正確的方法來設置它?
該方案:窗體是建立,然後驗證,如果它是無效的情況下,我需要標記一個字段禁用,並再次呈現它。
這是醜陋的一樣好,但它正式回答了這個問題,謝謝。在這個項目中,我會'刪除 - 添加'它 - 2行比10+和事件更容易維護。 – zerkms
我相信這實際上是處理動態元素的推薦方式,但我同意它看起來很麻煩 –
「推薦的方式」---因爲被推薦它太有限了,無論如何,沒關係:-) – zerkms