[英]Validate rule in cake php
I am trying to validate form on submit but it not working and form is submitted without error. 我正在尝试验证提交的表单,但它不起作用,并且表单提交没有错误。 no message displayed in view form. 在视图表单中未显示任何消息。 I am useing the below mentioned code in User Model 我正在用户模型中使用下面提到的代码
public $validate = array(
'fname' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A username is required'
),
'between' => array(
'rule' => array('between', 3, 15),
'message' => 'Between 5 to 15 characters'
),
),
'email' => array('email' => array(
'rule' => 'email',
'message' => 'Email must be a valid email address!'
),
'unique' => array(
'rule' => 'isUnique',
'message' => 'User already registered!'
)
),
'password' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A password is required'
),
'between' => array(
'rule' => array('between', 8, 15),
'message' => 'Between 8 to 15 characters'
),
'slug' => array(
'rule' => '/^[a-z0-9A-Z@#_]{8,}$/i',
'message' => 'Only letters, integers ,@, # and Underscore(_), min 8 characters'
),
),
);
UsersController.php UsersController.php
class UsersController extends AppController {
public $name = 'Users';
public function register(){
if(($this->request->is('post'))||($this->request->is('post'))){
$this->User->create();
$this->User->save($this->request);
}
}
register.ctp register.ctp
<div class="col-lg-12">
<div class="row">
<h2 class="col-lg-12 heading">Register</h2>
<?php
echo $this->Form->create('User', array('type'=>'file'));
echo '<div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">First Name</label>');
echo $this->Form->input('fname', array('type'=>'text', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'First Name'));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">Middle Name : </label>');
echo $this->Form->input('mname', array('type'=>'text', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'Middle Name'));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">Last Name : </label>');
echo $this->Form->input('lname', array('type'=>'text', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'Last Name'));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">Date Of Birth : </label>');
echo $this->Form->input('dob', array('type'=>'text', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'Date of Birht'));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">Gender : </label>');
echo $this->Form->input('gender', array('options'=>array('0' => ' Male', '1' => ' Female', '2' => ' Other'),'type'=>'radio', 'separator'=>' ', 'div'=>array('class'=>'col-lg-7'), 'label'=>false, 'class'=>'','legend' => false));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">E-Mail : </label>');
echo $this->Form->input('email', array('type'=>'text', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'E-Mail'));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">Password : </label>');
echo $this->Form->input('password', array('type'=>'password', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'Password'));
echo '</div><div class="clearfix"></div><div class="form-group">';
echo $this->Html->div('col-sm-2', '<label for="inputTextl1" class="control-label">Confirm Password : </label>');
echo $this->Form->input('cpassword', array('type'=>'password', 'div'=>array('class'=>'col-sm-5'), 'label'=>false, 'class'=>'form-control', 'placeholder'=>'Confirm Password'));
echo '</div><div class="clearfix"></div><div class="col-sm-12" align="center">';
echo $this->Form->submit('Register', array('div'=>false, 'label'=>false, 'class'=>'btn btn-primary'));
echo '</div>';
?>
</div>
</div>
Change this line- 更改此行-
echo $this->Form->create('User', array('type'=>'file'));
To: 至:
echo $this->Form->create('User', array('type'=>'file', 'novalidate' => true));
And you also missed this line at end of the form: 您还错过了表格结尾的这一行:
echo $this->Form->end();
Also check the field name in model. 还要检查模型中的字段名称。 It should be same as in the database table. 它应该与数据库表中的相同。
It will solve your problem. 它将解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.