我已经搜索并应用了几乎所有我能找到但仍面临同样问题的建议。我不知道为什么我的模型验证不起作用。它是一个简单的注册页面。任何人都可以指导我完成这件事。这是我下面的代码..
View -
<?php echo $this->Form->create('User'); ?>
<label>Username:</label>
<?php echo $this->Form->text('username'); ?>
<label>Email:</label>
<?php echo $this->Form->email('email'); ?>
<label>Password:</label>
<?php echo $this->Form->password('password'); ?>
<label>Address:</label>
<?php echo $this->Form->textarea('address'); ?>
<?php echo $this->Form->end(__('Register')); ?>
Controller -
public function register() {
if ($this->request->is('post')) {
$this->User->set($this->request->data);
if($this->User->validates()){
$this->User->save($this->request->data);
}
}
}
Model -
public $validate = array(
'username' => array(
'required' => true,
'rule' => array('isUnique'),
'message' => 'A username is required',
'allowEmpty' => false
),
'password' => array(
'required' => true,
'rule' => array('minLength', '8'),
'message' => 'A password is required',
'allowEmpty' => false
),
'email' => array(
'required' => true,
'rule' => array('email','isUnique', 'on' => 'create'),
'message' => 'A password is required',
'allowEmpty' => false
),
'address' => array(
'required' => true,
'rule' => array('notEmpty'),
'message' => 'A password is required',
'allowEmpty' => false
)
);
我面临的问题是当我点击注册时,它会输入空白条目。我的db结构在这里的每个字段的“null”属性中都有“yes”。当我将它们设为“no”时,它会给出标准的完整性违规错误。
答案 0 :(得分:0)
在保存呼叫之前使用create。此外,不需要设置和验证。保存将为您调用验证。
答案 1 :(得分:0)
将视图更改为echo $this->Form->inputs(array ('email', username'....)
,这应该添加字段确定。