我正在使用CakePHP 2.6.7。我想禁用csv文件上傳驗證。所以在我的情況下,Disable validation in update form - CakePHP 的第一個答案是不適用的。我嘗試:如何在控制器中禁用vailidation規則 - cakephp 2.6.7
$this->validator()->remove('email');
但它不工作。任何想法?
我正在使用CakePHP 2.6.7。我想禁用csv文件上傳驗證。所以在我的情況下,Disable validation in update form - CakePHP 的第一個答案是不適用的。我嘗試:如何在控制器中禁用vailidation規則 - cakephp 2.6.7
$this->validator()->remove('email');
但它不工作。任何想法?
也許,而不是刪除驗證規則,相同的行爲可以通過規則設定required=false
來完成:
public $validate = array(
'email' => array(
'rule' => array('email', true),
'message' => 'Please supply a valid email address.',
'required' => false
)
);
如果您仍希望在運行時刪除規則,請將其設置爲如果從控制器調用Model::validate
陣列中的鍵可能會起作用。但是,您可能希望在表單提交之後和保存之前(例如,基於另一個字段的值),在模型中禁用對字段的驗證。在這個階段,驗證規則已經被加載,並且修改Model::validate
數組將不起作用。相反,您必須使用ModelValidator
對象。
所有驗證規則都存儲在一個
ModelValidator
對象中,該對象包含模型中每個字段的每個規則集。
像這樣的東西應該工作:
public function beforeValidate($options = array()){
if (!empty($this->data[$this->alias]['csv_field'])) { //example
$this->validator()->remove('email');
}
}
它爲我工作:
unset($this->Customer->validate['email']);
一般: