2014-01-27 53 views
0

當前我正在使用validation.yml進行驗證。一切正常。 但我需要在特定條件下添加驗證規則。Symfony2 - 在控制器中動態添加驗證規則

我有一個選擇框選擇type文本框進入other_type。如果選擇typeother,我需要將此文本框強制爲

如何在表單提交後在控制器中執行此驗證?

+2

嗨@Saravanan,我剛纔問了類似的問題,請參閱[在創建表單時使用條件語句](http://stackoverflow.com/questions/11634377/use-a-conditional-statement-when-creating -表單)。答案來自於Symfony表單組件的主人Bernhard Schussek。 – Mick

+0

感謝您的信息,將嘗試該解決方案。 – Saravanan

回答

0

提供我有一個具有屬性類型和其他屬性other_type的實體,也許我會通過創建類約束來解決問題。你可以找到關於它的食譜文章here。這些類約束對於您所描述的情況非常有用,如在ConstraintValidator的validate方法中,您可以輕鬆驗證type屬性的值,並且如果設置爲other,則可以檢查other_type屬性。如果驗證將實體標記爲無效,則可以使用驗證上下文的addViolationAt方法,以便將錯誤消息添加到實體的other_type屬性。最後,您可以使用yml輕鬆設置您的驗證器到您的實體。