gpt4 book ai didi

validation - CakePHP 2.1 - 自定义验证规则 - 检查唯一字段值组合

转载 作者:行者123 更新时间:2023-12-04 01:54:02 25 4
gpt4 key购买 nike

我有几个列(ip、provider_id),我希望值的组合始终是唯一的。因此,我正在尝试构建一个自定义验证函数。但是我在捕获次要领域的值(value)时遇到了问题。到目前为止,这是我在模型中的代码:

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;

}

所以问题是,当我测试加载到 $field 中的值时,它只是“provider_id”,一个字符串。我希望它包含“provider_id”字段的值。有谁知道如何获取该值(以及所有其他辅助模型字段值,如有必要)并将其发送到自定义验证函数?

我在 CookBook 中的阅读和讨论过类似问题的人似乎都认为这个解决方案可行,但不幸的是对我来说并不适用。

提前致谢!

最佳答案

Cake 绝对按照预期的方式运行。您在该“规则”数组中传递的第二个参数应作为静态值传递。

但是,您的 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;

}

希望对您有所帮助!

关于validation - CakePHP 2.1 - 自定义验证规则 - 检查唯一字段值组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11173835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com