下記のような2テーブル(メンバー、所属グループ)から、
データを取得し、viewに渡しています。
php
1 2class MembersController extends AppController 3{ 4 public function view() 5 { 6 $this->loadModel('Members'); 7 $members = $this->Members 8 ->find('all') 9 ->contain(['Groups']); 10 $this->set('members',$members); 11 } 12} 13
このときに、メンバーテーブルにグループCの人が
含まれない場合に、コントローラで作成したレコードを
エンティティに挿入し、再度ソートしてViewに渡したいです。
(控えグループの場合は挿入不要)
そこで、エンティティにデータを挿入するやり方を
調べながら書き換えてみたのですがなかなかうまくいきません。
アドバイスをいただければ幸いです
php
1 2class MembersController extends AppController 3{ 4 public function view() 5 { 6 $this->loadModel('Members'); 7 $members = $this->Members 8 ->find('all') 9 ->contain(['Groups']); 10 11 //取得した$membersに group_id = 3 が含まれるレコードがあるか調査 12 if ( "【悩み1】この部分の書き方がわかりません" ){ 13 14 //新しいエンティティを作成 15 $data = $this->Members->newEntity([ 16 'groups.id' => '3' 17 'groups.name' => 'Cグループ' 18 'members.name' => '不在です' 19 ]); 20 21 //新しいエンティティを、マージする 22 "【悩み2】この書き方だとエラーが出ます" 23 $members = $this->Members->patchEntity($members, $data); 24 25 26 //マージするしたエンティティを、再度ソートする 27 "【悩み3】エンティティのソート方法がわかりません" 28 $members = $members->sortBy('group_id'); 29 30 } 31 32 $this->set('members',$members); 33 } 34} 35
回答1件
あなたの回答
tips
プレビュー