简体   繁体   English

验证蛋糕php中的规则

[英]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'=>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', '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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM