Validation 如何在controller-cakephp 2.6.7中禁用有效性规则
我使用的是CakePHP2.6.7。我想禁用csv文件上载的验证。在我的情况下,第一个答案是 不适用。我尝试:Validation 如何在controller-cakephp 2.6.7中禁用有效性规则,validation,cakephp,cakephp-2.6,cakephp-2.x,Validation,Cakephp,Cakephp 2.6,Cakephp 2.x,我使用的是CakePHP2.6.7。我想禁用csv文件上载的验证。在我的情况下,第一个答案是 不适用。我尝试: $this->validator()->remove('email'); 但它不起作用。有什么想法吗?对我来说很有用: unset($this->Customer->validate['email']); 一般而言: unset($this->Model->validate['validated field']); 这对我很有用:
$this->validator()->remove('email');
但它不起作用。有什么想法吗?对我来说很有用:
unset($this->Customer->validate['email']);
一般而言:
unset($this->Model->validate['validated field']);
这对我很有用:
unset($this->Customer->validate['email']);
一般而言:
unset($this->Model->validate['validated field']);
也许,可以通过在规则中设置
required=false
来实现相同的行为,而不是删除验证规则:
public $validate = array(
'email' => array(
'rule' => array('email', true),
'message' => 'Please supply a valid email address.',
'required' => false
)
);
如果您仍然希望在运行时删除该规则,那么如果您从控制器调用它,则在Model::validate
数组中取消设置该键可能会起作用。但是,您可能希望在表单提交之后和保存之前(例如,基于另一个字段的值)禁用模型中某个字段的验证。在此阶段,已加载验证规则,修改Model::validate
数组将无效。相反,您必须使用modelvalidater
对象
所有验证规则都存储在modelvalidater
对象中,该对象保存模型中每个字段的每个规则集
像这样的方法应该会奏效:
public function beforeValidate($options = array()){
if (!empty($this->data[$this->alias]['csv_field'])) { //example
$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
数组将无效。相反,您必须使用modelvalidater
对象
所有验证规则都存储在modelvalidater
对象中,该对象保存模型中每个字段的每个规则集
像这样的方法应该会奏效:
public function beforeValidate($options = array()){
if (!empty($this->data[$this->alias]['csv_field'])) { //example
$this->validator()->remove('email');
}
}