2012-08-29 24 views
0

我喜歡使用Symfony 2驗證組件來驗證我的表單而不使用表單組件,因爲我更喜歡手動創建自己的HTML表單。我該如何將手動表單中的數據綁定到實體,以便我可以驗證控制器中的實體?Symfony 2將數據從表單綁定到實體WITHOUT表單組件

+1

那麼你基本上會通過$ _POST並做一堆$ entity-> setWhatever。一種痛苦。我想你會發現使用表單組件更容易。定製生成的html表單元素也很容易。 – Cerad

回答

3

只需穿過$request->request參數包並使用模型的設置器來設置數據。然後你可以使用validator服務來驗證實體:

$constraintViolationList = $this->get('validator')->validate($entity); 

如果$constraintViolationList不爲空,該實體是無效的。

順便說一句,我相信Symfony窗​​體組件可以說是框架的最大部分。我建議你重新考慮你對此的立場。

+0

好的,我會考慮一下。我認爲形成組件的問題與設計師有關,我的意思是說;如果代碼是純HTML,設計師就能更好地工作。 –

+0

表單組件中有兩層:保持/綁定/驗證和渲染。設計師仍然會有方法來定製表單渲染。 –