現在、複数フィールドの挿入のプログラムを書いているのですが、挿入はできるようになったものの、バリテーションによるエラーメッセージがうまく表示されません。
Entityの使い方についてよくわかってないと思うのですが、どのようにすべきなのでしょうか。
- リストやりたいこと
一つでもエラーがあれば、処理を中止させて、エラーのflashメッセージとバリテーションの個々のメッセージを出して、もし一つもエラーがなければ、投稿完了のflashメッセージを出したいです。
php
1コントローラ 2 public function addition5(){ 3 $this->ViewBuilder()->layout('auth'); 4 $articles = TableRegistry::get('articles');//必要 5 $entities = $articles->newEntities($this->request->data()); 6 if($this->request->is('post')){ 7 $articles->connection()->transactional(function () use ($articles, $entities) { 8 foreach ($entities as $entity) { 9 $articles->save($entity, ['atomic' => false]); 10 } 11 }); 12 //var_dump($entities);これをするとエラーメッセージが格納されていることがわかる。 13 } 14 $this->set(compact('articles')); 15 $this->set('_serialize', ['articles']); 16 17 } 18
php
1ビュー 2echo $this->Form->create($articles,["class" => "article_form1"]); 3for($i = 0; $i < 5;$i++){ 4 $j = $i + 1;//エラーの配列番号と合わせるために足し算する。 5 echo '<h2 class="add5">登録記事('.$j.'/5)</h2>'; 6 echo $this->Form->hidden($i.'.user_id',['value' => h($this->request->session()->read('Auth.User.id'))]); 7 echo $this->Form->input($i.'.title',['label' => 'タイトル','placeholder' => 'タイトル']); 8 echo $this->Form->input($i.'.comment',['label' => 'コメント','placeholder' => 'コメント']); 9} 10echo $this->Form->button('登録',["class" => "ok"]); 11echo $this->Form->end();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/02 01:11
2016/08/02 01:13
2016/08/02 01:19
2016/08/02 03:10
2016/08/02 05:21 編集
2016/08/02 06:20
2016/08/02 07:12 編集
2016/08/02 13:56
2016/08/02 14:26
2016/08/02 15:01
2016/08/02 15:13
2016/08/02 15:14
2016/08/02 18:21
2016/08/02 23:49
2016/08/03 09:40
2016/08/04 01:00
2016/08/04 01:13
2016/08/04 01:29
2016/08/04 02:37
2016/08/05 09:04
2016/08/05 14:14
2016/08/05 15:23
2016/08/05 23:08
2016/08/05 23:50
2016/08/06 11:37
2016/08/07 17:51
2016/08/07 23:59
2016/08/08 03:01
2016/08/08 15:06