0
將驗證約束條件納入項目時,哪些最佳實踐是什麼?Symfony2中的驗證:實體與FormType - 最佳實踐?
在大多數情況下,您將它保留在Entities或FormTypes中?
有什麼優點和缺點?
這裏是我的意思是:
FormType例如
$builder
->add('firstName', TextType::class, array(
'constraints' => array(
new NotBlank(),
),
))
;
實體例如
class Author
{
/**
* @Assert\NotBlank()
*/
protected $firstName;
}
最佳解決方案仍然是不使用實體作爲數據對象。編寫數據傳輸對象以避免大量頭痛問題,並使表單變得更容易。在這種情況下,我可以說你的答案確實是正確的。 –
任何代碼段?我很好奇你是如何妥善管理的。 – Terenoth
它只是一個帶有getter/setter(POPO)的數據對象,就像我的ChangeUsernameType有一個ChangeUsernameData一樣,它只是保存舊的和新的用戶名,我的類型在new上有一個重複的類型,並且與現有的用戶名匹配。一旦提交併且有效,我只需執行$ user-> setUsername($ myDto-> getUsername());並沖洗我的用戶。這可以防止我的實體進入無效狀態,甚至更糟糕,在這種狀態下被意外沖刷。這也意味着我可以塑造我的形式,而不會受到我的模型的阻礙。 –