CakePHP 模型验证无法正常工作
Posted
技术标签:
【中文标题】CakePHP 模型验证无法正常工作【英文标题】:CakePHP Model validation not working properly 【发布时间】:2017-05-22 06:44:12 【问题描述】:我是 Cakephp 的新手,我创建了一个普通表单来提交名字。 我的表名为“registers。我创建了一个名为 RegistersController (RegistersController.php) 的控制器和一个名为 Register (Register.php) 的模型. 每次我在输入名字后提交时,它仍然显示错误(First name is must),只有当我在不输入任何内容的情况下提交时才会显示错误。接下来我添加了至少 6 个字符的验证。那验证也不起作用。我的意思是,cakephp 没有验证该规则。谁能告诉我我做错了什么?
型号:-
class Register extends AppModel
//put your code here
//public $useTable = "registers";
public $validate = array(
'first'=>array(
'minLength' => array(
'rule' => array('minlength','6'),
'field' => 'first',
'message' => 'Minimum 6 characters required'
),
'required' => array(
'rule'=>array('notEmpty'),
'required' => true,
'message' => array('First name is must')
)
)
);
控制器:-
class RegistersController extends AppController
public $uses = array("Register");
//put your code here
public function index()
if($this->request->is('post'))
//echo "Data";
if($this->Register->validates())
//$this->Register->create();
//echo "Data validated";
print_r($this->Register->validationErrors);
else
//echo "Data not validated";
print_r($this->Register->validationErrors);
我的看法如下:-
<?php
echo $this->Form->create('Register');
echo $this->Form->input('first');
echo $this->Form->end("Submit");
?>
【问题讨论】:
【参考方案1】:你错过了这一行
$this->Register->set($this->request->data);
把它放在验证调用之前,即
$this->Register->validates()
【讨论】:
以上是关于CakePHP 模型验证无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章