2015-10-10 157 views
2

我想驗證表單但它不起作用,表單提交時沒有錯誤。沒有消息以視圖形式顯示。 我期運用下面提到的代碼用戶模型驗證蛋糕中的規則php

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' => '/^[[email protected]#_]{8,}$/i', 
       'message' => 'Only letters, integers ,@, # and Underscore(_), min 8 characters' 
      ), 
     ), 
    ); 

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

<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> 
+0

是否也提交空字段呢?或者不顯示錯誤信息?請在您嘗試的地方添加您的.ctp代碼。 –

+0

沒問題,在問題 –

+0

中添加ctp和控制器代碼,您沒有顯示錯誤消息,對不對?如果你保留空文件是否提交數據? –

回答

-1

更改此LINE-

echo $this->Form->create('User', array('type'=>'file')); 

要:

echo $this->Form->create('User', array('type'=>'file', 'novalidate' => true)); 

而且你還錯過了這條線在表格末尾:

echo $this->Form->end(); 

模型還要檢查的字段名稱。它應該與數據庫表中的相同。

它會解決你的問題。

+0

它無法正常工作 –

+0

您的'用戶'表的字段名稱與'用戶'模型中的名稱相同嗎? –

+0

「表」和「模型」中的字段名稱應該相同。請檢查它並讓我知道。謝謝。 –