Cakephp表单从不在应该验证的时候进行验证
好的,我有一些工作要做。它没有验证什么时候应该验证,这似乎与我在谷歌上发现的每个问题都相反。我尝试过从CakePHP文档中复制精确的代码,但似乎不起作用。也许这里有人能找到答案 型号:Cakephp表单从不在应该验证的时候进行验证,php,validation,cakephp,Php,Validation,Cakephp,好的,我有一些工作要做。它没有验证什么时候应该验证,这似乎与我在谷歌上发现的每个问题都相反。我尝试过从CakePHP文档中复制精确的代码,但似乎不起作用。也许这里有人能找到答案 型号: <?php App::uses('AppModel', 'Model'); class User extends AppModel { public $validate = array( 'email' => array(
<?php
App::uses('AppModel', 'Model');
class User extends AppModel {
public $validate = array(
'email' => array(
'rule' => 'email',
'required' => true,
'allowEmpty' => false
),
'full_name' => array(
'rule' => 'alphaNumeric',
'required' => true,
'allowEmpty' => false
),
'password' => array(
'rule' => array('minLength', 8),
'required' => true,
'allowEmpty' => false
)
);
}
?>
控制器:
<?php
App::uses('AppController', 'Controller');
class UsersController extends AppController {
function login() {
$this->layout = 'signin';
}
function signup() {
$this->layout = 'signin';
if($this->request->is('post')) {
$this->User->set($this->request->data);
if($this->User->validates())
$this->Session->setFlash('Validated!');
else
$this->Session->setFlash('Did not validate!' . print_r($this->User->validationErrors, true) . print_r($this->request->data, true));
}
}
}
?>
视图:
创建帐户
任何方向正确的帮助都将受到感谢。我一直在使用CakePHP进行验证时遇到问题,所以我以前从未使用过它。现在它是必需的,所以我别无选择,只能苦干直到它工作
哦,我应该注意到数据确实通过了。以下是打印功能的结果:
没有验证!数组([full_name]=>数组([0]=>此字段)
不能为空)[password]=>数组([0]=>此字段不能为空
留空)数组([用户]=>数组([全名]=>肖恩
Templeton[电子邮件]=>sean@*********
.com[密码]=>*********
[确认密码]=>*********
))
请通过这个链接。它解释了cakephp验证是如何工作的 更新:
您的全名验证具有不包含空格的“规则”=>“字母数字”。但是如果你检查你的数据[全名]=>Sean Templeton,其中有一个空格
您可以在模型中设置自己的消息。我想我没必要这么说。在你的控制器上试试这个
function signup() {
$this->layout = 'signin';
if ($this->request->is('post')) {
$this->User->create($this->request->data); //"create" instead of "set"
if ($this->User->validates())
$this->Session->setFlash('Validated!');
else
$this->Session->setFlash('Did not validate!' . print_r($this->User->validationErrors, true) . print_r($this->request->data, true));
}
}
}
我…你没读我的帖子吗?我不仅读了它,还从中复制了代码。我就是不能让它工作。检查一下动作。我没有看到表单中设置了任何操作。如何编写调用注册操作的代码?CakePHP会自动使用正确的操作创建表单。具体地说,它输出这样的信息:
我不想听起来粗鲁,但你对CakePHP了解多少吗?是的,你很粗鲁,但没问题。我最近开始做蛋糕。所以我知道的不多。我接受这一点。但是,我正试图帮助您。您的全名验证具有“规则”=>“字母数字”,其中不包括空格。但是如果你检查你的数据[全名]=>Sean Templeton,其中有一个空格。我希望这次我没有错。
function signup() {
$this->layout = 'signin';
if ($this->request->is('post')) {
$this->User->create($this->request->data); //"create" instead of "set"
if ($this->User->validates())
$this->Session->setFlash('Validated!');
else
$this->Session->setFlash('Did not validate!' . print_r($this->User->validationErrors, true) . print_r($this->request->data, true));
}
}
}