我的表正在拋出一個默認的「notEmpty」驗證錯誤,即使我沒有寫任何驗證的排序。CakePHP 3 - 試圖驗證notEmpty由於某種原因的蛋糕
在我的表類基本驗證:
public function validationDefault(Validator $validator)
{
return $validator->requirePresence('my_field', 'create', 'Custom error message');
}
數據是集:
['my_field' => null]
據我可以從文檔所知,這應該不是驗證失敗。
通過使用array_key_exists()來檢查密鑰的存在,以便空值將被視爲存在。
然而,什麼是真正發生的是驗證與消息失敗:
'my_field' => 'This field cannot be left empty'
這是notEmpty()
驗證函數Cake的默認消息,因此它在哪兒來的?我希望它允許空值。我的數據庫字段也允許NULL。
編輯
我設法通過增加allowEmpty()
到該字段的驗證,以解決這一問題。因此,這似乎表明,Cake假設如果您的字段是必需的,您也希望它默認驗證notEmpty()
,即使您沒有這樣說。
這直接違背了文檔線I以上表明:
密鑰存在通過使用array_key_exists(),以便空值將計爲存在檢查。
那麼文檔是否需要更新,或者它是一個錯誤?
你能分享你的模型編碼嗎? –
驗證錯誤發生,因爲字段在默認情況下不允許爲空,但與它們的存在是否需要無關,這是兩個不同的規則。如果文檔指出缺省情況下不允許空字段,這可能會有所幫助。 – ndm
是的,我理解這兩種方法是如何工作的,但文檔需要說明這一點。我認爲,Cake會少一些假設,並且不會在沒有告訴你的情況下執行'notEmpty'規則。 – BadHorsie