有人能給我一些關於Symfony2如何使用ORM元數據自動構建驗證規則的啓示嗎?我正在使用Symfony2.1。來自實體映射元數據的驗證規則
例如,如果我們有一個Foo
實體與所需name
屬性,我們有以下學說metada(如註釋):
@ORM\Column(name="name", type="string", length=255, nullable=false)
但是,我們有Assert
重複nullable
信息,如果我們希望它在服務器端進行驗證:
@Assert\NotBlank()
在另一邊,如果我們有一個number
屬性與integer
類型,這自動用作驗證規則,而不需要使用任何@Assert
註釋。
@ORM\Column(name="number", type="integer", nullable=true)
//@Assert\Type(type="integer") is no needed
感謝您的回答@WilliamDURAND。但事實是,在某些時候,兩層都在混合。正如我所說的,如果ORM設置了一個「整數」約束,那麼驗證層也會使用這個約束。但是,例如,不能使用「可空」約束。 –
您確定它不是表單組件的一部分嗎? Form組件可以根據Doctrine元數據猜測類型,有些類型可以實現驗證(例如HTML5驗證)。 –
我認爲它必須是驗證組件,至少它的工作原理是一樣的。我禁用HTML5驗證,並且服務器顯示有關字段類型的錯誤消息,並且未添加驗證約束。也許Form和Valdation組件在某個點有類似的行爲? :S –