2017-09-27 41 views
2

cakePhpアプリケーションで再生を開始しましたが、動作させようとしましたが、フォームヘルパー出力でエラーのフィールドに検証エラーメッセージを出力できません。 FriendsOfCake/bootstrap-uiプラグインを使用して、フォームヘルパー出力のブートストラップフォームを作成します。CakePhp 3.5検証エラーメッセージがフィールドに表示されない

public function validationDefault(Validator $validator) 
{ 

    $validator 
     ->integer('id') 
     ->allowEmpty('id', 'create'); 

    $validator 
     ->notEmpty('name', 'Name should not be empty') 
     ->scalar('name') 
     ->requirePresence('name', 'create'); 
    return $validator; 

私のコントローラメソッド:

$user = $this->Users->newEntity(); 
if ($this->request->is('post')) { 
    $user = $this->Users->patchEntity($user, $this->request->getData()); 
    if ($this->Users->save($user)) { 
     $this->Flash->success(__('V-ati inregistrat cu success')); 
      return $this->redirect($this->referer()); 
     } 
    $this->Flash->error(__('The user could not be saved. Please, try again.')); 
    } 


$this->viewBuilder()->setLayout('auth'); 
$this->viewBuilder()->setTemplate('register'); 

$this->set(compact('user')); 
$this->set('_serialize', ['user']); 
} 

と私のフォーム:あなたはフォームヘルパーに無効なコンテキストを渡している

<div class="container"> 
<div class="row"> 
    <div class="col-md-4 col-md-offset-4"> 

     <?= 
      $this->Form->create('users',['url'=>['controller'=>'Users','action'=>'store']]), 
      $this->Form->control('name'), 
      $this->Form->control('email'), 
      $this->Form->control('password'), 
      $this->Form->submit('Trimite'), 

      $this->Form->end() 

     ?> 

    </div> 
</div> 

答えて

1

は、ここに私のモデルです。 $context引数のFormHelper::create()はデフォルトでfalse/null、配列、結果セット、またはエンティティのみをサポートし、後者の場合は可能な検証エラーを含むエンティティを保持する$user変数を渡します。

$this->Form->create($user, [/* ... */]) 

は、それが魅力のように働いた、また

+0

を参照してください。ありがとうございました。 –

関連する問題