Validation CakePHP::自定义验证方法返回什么?

Validation CakePHP::自定义验证方法返回什么?,validation,cakephp,cakephp-2.0,Validation,Cakephp,Cakephp 2.0,我有一个自定义的验证规则,以确保在字段中设置非零价格。我在字段中有一个占位符(0.00),以防止用户输入美元符号之类的内容。然而,当我去验证一个非零条目时,$this->data[$this->alias]['price']在我的测试中是'0.00',但验证正在工作-它将失效。但当我输入1000.00时,它也是无效的 有一件事我找不到,那就是从自定义验证字段返回什么/如何使该字段无效。目前,代码为: public function notZeroPrice($check){ if ($c

我有一个自定义的验证规则,以确保在字段中设置非零价格。我在字段中有一个占位符(0.00),以防止用户输入美元符号之类的内容。然而,当我去验证一个非零条目时,
$this->data[$this->alias]['price']
在我的测试中是'0.00',但验证正在工作-它将失效。但当我输入1000.00时,它也是无效的

有一件事我找不到,那就是从自定义验证字段返回什么/如何使该字段无效。目前,代码为:

public function notZeroPrice($check){
    if ($check == '0.00')
        return true;

    return false;
}

文档在
$check
的结构上也不清楚。

如果验证,则返回true。如果没有,则返回false

然而,您的验证方法从一开始就是有缺陷的
$check
是一个数组,如果你调试它,那么你的方法总是会返回false。其次,您要测试它是否>0,而不仅仅是等于“0.00”。您将比较2个字符串,这样也不会起作用

如果值大于0(int),则返回true。您可以使用
array\u shift($check)
轻松地从数组中获取它的值

您甚至可以通过
'rule'=>array('comparison','>',0),
核心验证侥幸逃脱


(我假设价格不为零也意味着价格不为负)

如果它有效,则返回true。如果没有,则返回false

然而,您的验证方法从一开始就是有缺陷的
$check
是一个数组,如果你调试它,那么你的方法总是会返回false。其次,您要测试它是否>0,而不仅仅是等于“0.00”。您将比较2个字符串,这样也不会起作用

如果值大于0(int),则返回true。您可以使用
array\u shift($check)
轻松地从数组中获取它的值

您甚至可以通过
'rule'=>array('comparison','>',0),
核心验证侥幸逃脱

(我假设价格不为零也意味着价格不为负)

return array_shift($check) > 0; // or something similar.