【发布时间】:2013-11-16 03:02:02
【问题描述】:
好的,所以我的验证有点工作。它不验证何时应该,这似乎与我在谷歌上找到的所有问题都相反。我尝试从 CakePHP 文档中复制确切的代码,但它似乎不起作用。也许这里有人可以弄清楚。
型号:
<?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));
}
}
}
?>
查看:
<div class="placeholder text-center"><i class="fa fa-pencil"></i></div>
<?php echo $this->Session->flash(); ?>
<div class="panel panel-default col-sm-6 col-sm-offset-3">
<div class="panel-body">
<?php echo $this->Form->create('User'); ?>
<div class="form-group">
<?php echo $this->Form->input('full_name', array('placeholder' => 'Your full name', 'class' => 'form-control')); ?>
</div>
<div class="form-group">
<?php echo $this->Form->input('email', array('placeholder' => 'Enter email', 'class' => 'form-control')); ?>
</div>
<div class="form-group">
<?php echo $this->Form->input('password', array('placeholder' => 'Password', 'class' => 'form-control')); ?>
</div>
<div class="form-group">
<?php echo $this->Form->input('confirm_password', array('placeholder' => 'Retype Password', 'class' => 'form-control')); ?>
</div>
<button type="submit" class="btn btn-primary btn-block">Create Account</button>
<?php echo $this->Form->end(); ?>
</div>
</div>
对正确方向的任何帮助表示赞赏。我一直在使用 CakePHP 进行验证时遇到问题,所以我以前从未使用过它。现在它是必需的,所以我别无选择,只能勉强完成它,直到我得到它的工作。
哦,我应该注意到数据确实通过了。这是print_r 函数的结果:
没有验证!Array ( [full_name] => Array ( [0] => 这个字段 不能留空)[密码] => 数组([0] => 该字段不能 留空 ) ) 数组 ( [User] => Array ( [full_name] => Sean Templeton [电子邮件] => sean@
********.com [密码] =>********[确认密码] =>********) )
【问题讨论】:
标签: php validation cakephp