ali*_*don 3 validation cakephp unique customvalidator cakephp-2.0
我有几个列(ip,provider_id),我希望值的组合始终是唯一的.因此,我正在尝试构建自定义验证功能.但我有问题抓住二级领域的价值.这是我目前在模型中的代码:
public $validate = array(
'ip' => array(
'rule' => array('uniqueClick', 'provider_id'),
'message' => 'The click is not unique.'
)
);
public function uniqueClick ($ip, $field) {
$count = $this->find('count', array('conditions' => array('ip' => $ip, 'provider_id' => $field)));
// echo $field;
return $count == 0;
}
Run Code Online (Sandbox Code Playgroud)
所以问题是当我测试加载到$ field中的值时,它只是'provider_id',一个字符串.我希望它包含'provider_id'字段的值.有没有人知道如何获取该值(以及必要时的所有其他辅助模型字段值)并将其发送到自定义验证函数?
我在CookBook上的阅读和那些讨论类似问题的人似乎认为这个解决方案可行,但不幸的是不适合我.
提前致谢!
蛋糕肯定是按照应有的方式行事.您在'rule'数组中传递的第二个参数是作为静态值传递的.
但是,您的provider_id应该在$ this-> data ['MyModel'] ['provider_id']中可用
所以你应该能够完全忘记第二个参数,并且:
public function uniqueClick ($ip) {
$count = $this->find('count', array(
'conditions' => array(
'ip' => $ip,
'provider_id' => $this->data[$this->alias]['provider_id'])
));
return $count == 0;
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!