首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蛋糕PHP分隔符不能是字母数字或带有自定义验证规则的反斜杠

蛋糕PHP分隔符不能是字母数字或带有自定义验证规则的反斜杠
EN

Stack Overflow用户
提问于 2013-04-19 03:13:18
回答 1查看 1.2K关注 0票数 0

我有个问题想和你谈谈。我已经在类post的appmodel中设置了一个自定义验证规则。

代码语言:javascript
复制
'DELIVERYAREA' => array(
        'rule-1' => array(
            'rule' => array('between', 5, 5),
            'message' => 'Bitte eine fünfstellige Postleitzahl eingeben'
        ),
        'rule-2' => array(
            'rule' => 'numeric',
            'message' => 'Bitte nur Zahlen eingeben'
        ),
        'rule-3' => array(
            'rule' => 'ZipExists',
            'message' => 'Postleitzahl existiert nicht!'            
        )
    )

函数ZipExists也是在appmodel中编码的,但在类zipcode中。

代码语言:javascript
复制
public function ZipExists($zipcode){
$valid = $this->find('count', array('conditions'=> array('Zipcode.zipcode' =>$zipcode)));
if ($valid >= 1){
  return true;
}
else{
  return false;
}
}

debug($valid)抛出正确的数字:如果函数找到有效的邮政编码,则抛出1;如果没有找到,则抛出0。也就是说,该函数被正确调用。但是Cake做的是两件事。首先,它抛出一个错误:分隔符不能是字母数字或反斜杠。由于尝试了array_push($zipcode);在函数没有工作的情况下,我对此一无所知。

第二,Deliveryarea视图中的错误消息一直显示,与函数抛出的true或false无关。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-04-20 16:13:00

我找到了解决方案。Cake希望自定义验证规则位于调用规则的特定类中。所以,当你在post类中调用自定义规则时,自定义函数必须写在post类中,否则蛋糕不会找到它并每次都验证它为false。

这里要做的魔术是导入您想要在调用验证函数的类中使用的appmodel-class。这与以下语句一起使用:

$Zipcode =ClassRegistry::init(‘要使用的类-在我的例子中是"Zipcode"');

但是,如果您的表与hasAny或belongsTo等关联,则自定义函数将在没有它们的情况下工作。另一个你不能错过的要点是,所有的验证函数都必须用"public function xyz“来引入,否则蛋糕也找不到它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16091261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档