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\'
    )
);
可能会解决您的问题。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...