如何解决cakephp中的表单验证
| 我有一个模型login
-它有5个字段。在注册时,我正在验证所有字段,但是在编辑记录时,我只想在保存数据之前验证某些字段。
我正在使用此代码:
if ($this->Login->validates(array(\'fieldList\' => array(\'password\',\'name\')))) {
if ($this->Login->save($this->data)) {
echo \'helllo\';exit;
//$this->Session->setFlash(\'Your post has been updated.\');
//$this->redirect(array(\'action\' => \'profile\'));
}else {
}
} else {
}
但这不起作用。
解决方法
您应该通过在验证规则中将
on
设置为create
来正确执行此操作。每次在控制器中重复此逻辑都是不好的。
您所遇到的具体问题是ѭ4正在再次验证并验证所有字段。实际上,第一个呼叫“ 5”是完全多余的。如果只想保存/验证某些字段,则必须使用save
函数的第三个$fieldlist
参数:
$this->Login->save($this->data,true,array(\'password\',\'name\'))
,最好将所有内容分开,首先验证,如果一切正常,则只有保存所有数据。
验证应该返回一些失败的数据,此外,对于每个字段,有不同的数据类型,不同的检查内容-您的站点应该有一些分类,对于特定的字段应该有什么限制。
,如果我对您的理解正确,那么您只希望验证适用于create
,而不是update
。 Cake内置了此功能。
在每个字段验证规则所在的模型中,您将具有类似于以下内容的内容:
var $validate = array(
\'fieldName1\' => array(
\'rule\' => \'ruleName\',// or: array(\'ruleName\',\'param1\',\'param2\' ...)
\'required\' => true,\'allowEmpty\' => false,\'on\' => \'create\',// or: \'update\' ** here **
\'last\' => false,\'message\' => \'Your Error Message\'
)
);
可能会解决您的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。