我試圖做一個可以爲空的整數,這是一個整數也可以有一個值設置爲null。Symfony2窗體自定義複合類型
要做到這一點,我希望有一個複選框的整數輸入,以表示它爲空(然後可以通過JavaScript掛接來禁用/啓用整數輸入)。
我看到這樣的三種方式:
- 具有兩個字段的自定義類型。
- 有一個自定義窗體小部件來處理這兩個。
- 一和二的一些組合。
我對此沒有任何問題,它非常直截了當。
我似乎無法找到任何有關文檔是如何讓這兩個領域漏斗到一個單一的變量。
任何想法?
我試圖做一個可以爲空的整數,這是一個整數也可以有一個值設置爲null。Symfony2窗體自定義複合類型
要做到這一點,我希望有一個複選框的整數輸入,以表示它爲空(然後可以通過JavaScript掛接來禁用/啓用整數輸入)。
我看到這樣的三種方式:
我對此沒有任何問題,它非常直截了當。
我似乎無法找到任何有關文檔是如何讓這兩個領域漏斗到一個單一的變量。
任何想法?
我可以看到的最好方法是在表單中應用form transformer。
如果選中該複選框,則將空值設置爲您的屬性,如果不是,則指定整數小部件的值。
你可以看看here並將其應用於您的特定情況。
附註:我不會在控制器中這樣做,這不是他的工作。
完美,謝謝!並同意關於無控制器的事情。我想要一些我可以純粹在類型中設置的東西,然後基本上忘記它在幕後做的事情。 =) – samanime 2013-02-11 23:15:38
你應該檢查你的控制器。如果複選框被選中,則數字爲空。當你不想填滿它時,你爲什麼不把它放空? – cheesemacfly 2013-02-11 20:10:26
如果我要在控制器中處理這個問題,那麼每次我想使用該類型時都不得不處理這個問題,而不是像Abstract類型那樣。我想有一個明確的複選框爲空(與空白字段),所以它是非常明確的,你將它設置爲空,而不是一些默認值(如0,這是空字符串將等同)。隨着我的工作,0和null意味着兩個完全不同的東西。 – samanime 2013-02-11 23:17:38