我有一個實體領域如下領域有「必需的」屬性:只有驗證組「NotBlank」的約束也當不使用
/**
* @ORM\Column(nullable=true)
* @Assert\NotBlank(groups={"myGroup"})
*/
protected $field;
然後我打電話的實體形式,無任何確認團組(我configureOptions
功能套data_class
)。但該領域目前正在與HTML中required="required"
屬性創建:
<input id="entity_field" name="entity[field]" required="required" type="text">
但是,如果我擺弄HTML,並採取了required="required"
,按預期在後端驗證工作(即NotBlank
不適用對於這種形式)。
但是,如果我走了'@assert \ NotBlank'出去,'required'屬性消失。換句話說,框架中的某些內容讀取'NotBlank'並在表單中打擊一個'required =「required」'。它不應該是聰明的,只有當我在正確的驗證組中時纔讀取'NotBlank'?這是一個錯誤嗎? – Heitor
@Heitor:在我的知識有symfony的 – Shady
服務器端驗證和客戶端驗證沒有關係,服務器端和客戶端可能separatedly驗證,但是當你設置一定的「@assert」的限制,他們在兩個工作。嘗試在字段中設置'NotBlank',您將在HTML中自動獲得'required =「required」'。嘗試設置'Length'約束,您將得到'maxlength =「X」'。 當然,我假設Symfony標準版默認行爲。 – Heitor