2016-07-19 111 views
1

我需要验证一个表单,我不知道具体该怎么做。我试图在Model/Users.php和Model/Table/UserTables.php中进行验证,但没有任何结果。CakePHP 3:验证表单

有人可以帮助我吗?

register.ctp

<br> 
<div class="index large-4 medium-4 large-offset-4 medium-offset-4 columns"> 
    <div class="panel"> 
     <h2 class="text-center">Cadastro</h2> 
     <?= $this->Form->create(); ?> 

      <?= $this->Form->input('nome'); ?> 
      <?= $this->Form->input('email'); ?> 
      <?= $this->Form->input('password'); ?> 
      <?= $this->Form->submit('Cadastrar', array('class' => 'button')); ?> 


     <?= $this->Form->end(); ?> 
    </div> 
</div>  

我不知道exaclty,我可以把这个:

public $validate = array(
    //campo que deve ser validado 
    ‘nome’ => array(
     //alias da validação 
     ‘notempty’ => array( 
    ‘rule’=>’notempty’,//validação para não aceitar vazio 
    ‘message’=>”Você deve preencher este campo”//erro 
    ) 
    ), 
    ‘idade’ => array(
    ‘notempty’ => array(
    ‘rule’ => ‘notempty’, 
    ‘message’ => ‘Você deve preencher este campo’ 
    ), 
    ‘numeric’ => array(
    ‘rule’ => ‘numeric’, 
    ‘message’ => ‘Você deve preencher este campo’ 
    ) 
) 
); 
} 

验证上UsersTable.php只适用于 “增加” 的形式:

public function validationDefault(Validator $validator) 
    { 
     $validator 
      ->integer('id') 
      ->allowEmpty('id', 'create'); 

     $validator 
      ->requirePresence('nome', 'create') 
      ->notEmpty('nome'); 

     $validator 
      ->email('email') 
      ->requirePresence('email', 'create') 
      ->notEmpty('email'); 

     $validator 
      ->requirePresence('password', 'create') 
      ->notEmpty('password'); 



     return $validator; 
    } 

回答

0

您会希望将验证放入模型中。它看起来像您所使用的验证语法的CakePHP 2,但你的标题说,您使用的版本3,你可以看到,在这里:http://book.cakephp.org/2.0/en/models/data-validation.html#simple-rules

下面是CakePHP的3验证文档:http://book.cakephp.org/3.0/en/core-libraries/validation.html

你”必须在这添加到模型

use Cake\Validation\Validator; 

$validator = new Validator(); 

,并从那里,你可以添加像

$validator->notEmpty('title', 'Please fill this field') 
+0

的事情,我把这个型号/实体/ User.p HP文件夹?谢谢你的回答。 – VitorTech

+0

您需要将其添加到要保存的模型中。因此,如果要保存到用户表中,请将其添加到用户模型中。 – bill

+0

我无法验证。 “添加”表单有验证工作,但我的注册表单不能验证。我是CakePHP的新手。 – VitorTech