cakephp v2.2自定义验证方法isn';不要被叫
我试图在cakephp 2.2.2中使用自定义验证方法,但由于某些原因,没有调用该函数。当我在另一个项目中使用cakephp时,自定义验证方法在同一个系统上工作 我发现了一个关于堆栈溢出的问题,似乎是同一个问题,但没有解决方案() 这是我的模型中的代码:cakephp v2.2自定义验证方法isn';不要被叫,php,validation,cakephp,cakephp-model,Php,Validation,Cakephp,Cakephp Model,我试图在cakephp 2.2.2中使用自定义验证方法,但由于某些原因,没有调用该函数。当我在另一个项目中使用cakephp时,自定义验证方法在同一个系统上工作 我发现了一个关于堆栈溢出的问题,似乎是同一个问题,但没有解决方案() 这是我的模型中的代码: <?php App::uses('AppModel', 'Model'); class Person extends AppModel { public $validate = array( 'dob' =&g
<?php
App::uses('AppModel', 'Model');
class Person extends AppModel {
public $validate = array(
'dob' => array(
'date' => array(
'rule' => array('date'),
),
'date_between' => array(
'rule' => array('dateBetween', '01/01/1996'),
'message' => 'You are not the right age to enter',
),
),
);
public function dateBetween($v1, $v2) {
dump_var($v1);
dump_var($v2);
return false;
}
}
您确定控制器正在发送此字段dob
,以使其通过验证?是的,正确的日期正在保存到数据库中,但控制器中的自定义函数未对其进行验证。我正在设置数据:“$this->Person->set($this->request->data)”,然后验证它:“$this->Person->validates()“;然后我将数据写入会话:$this->session->write($this->request->data);”,然后我重定向到确认页面,从会话读取数据:$tmpdata=$this->session->read('tmpdata');最后保存:$this->Person->save($tmpdata,array('validate'=>false));”您可以尝试在两个验证中使用属性'required'=>true
。。。无论如何,谢谢你的帮助:)