Q&A
######今ままのコード
PHP
1$query = $this->Datacklists->find('all') 2 ->select([ 3 'id','dal01','dal02','dal03','dal04','dal05','dal06','dal07','dal08','dal09','dal10','dal12','dal13','dal14','dal17', 4 'dal15' => 'group_concat(DISTINCT Daldata15s.name SEPARATOR ";")', 5 'dal16' => 'group_concat(DISTINCT Daldata16s.name SEPARATOR ";")' 6 ]) 7 ->join([ 8 'table' => 'Dalcheckbox15s', 9 'type' => 'LEFT', 10 'conditions' => 'Dalcheckbox15s.datacklists_id = Datacklists.id', 11 ]) 12 ->join([ 13 'table' => 'Daldata15s', 14 'type' => 'LEFT', 15 'conditions' => 'Daldata15s.dal15_id = Dalcheckbox15s.dal15_id', 16 ]) 17 ->join([ 18 'table' => 'Dalcheckbox16s', 19 'type' => 'LEFT', 20 'conditions' => 'Dalcheckbox16s.datacklists_id = Datacklists.id', 21 ]) 22 ->join([ 23 'table' => 'Daldata16s', 24 'type' => 'LEFT', 25 'conditions' => 'Daldata16s.dal16_id = Dalcheckbox16s.dal16_id', 26 ]) 27 28 ->where(['status' => 1]) 29 ->group(['Datacklists.id']) 30 ->order(['Datacklists.id' => 'DESC']);
######うまくいかない所(アソシエーション後)
PHP
1$query = $this->Datacklists->find('all')->contain([ 2 'Daldata11s' => function ($q) { 3 return $q->select(['dal11' => 'group_concat(DISTINCT Daldata11s.name SEPARATOR ";")']); 4 }, 5 'Daldata15s' => function ($q) { 6 return $q->select(['dal15' => 'group_concat(DISTINCT Daldata15s.name SEPARATOR ";")']); 7 }, 8 'Daldata16s' => function ($q) { 9 return $q->select(['dal16' => 'group_concat(DISTINCT Daldata16s.name SEPARATOR ";")']); 10 } 11 ]) 12 13 14 ->where(['status' => 1]) 15 ->group(['Datacklists.id']) 16 ->order(['Datacklists.id' => 'DESC']);
######アソシエーション定義
PHP
1$this->belongsToMany('Daldata11s', [ 2 'joinTable' => 'dalcheckbox11s', 3 'foreignKey' => 'datacklists_id', 4 'targetForeignKey' => 'dal11_id', 5 ]); 6 7 $this->belongsToMany('Daldata15s', [ 8 'joinTable' => 'dalcheckbox15s', 9 'foreignKey' => 'datacklists_id', 10 'targetForeignKey' => 'dal15_id', 11 ]); 12 13 $this->belongsToMany('Daldata16s', [ 14 'joinTable' => 'dalcheckbox16s', 15 'foreignKey' => 'datacklists_id', 16 'targetForeignKey' => 'dal16_id', 17 ]);
コードばかりで申し訳ございません。
うまくいかない所(アソシエーション後)のコードがうまくいきません、、、
どのように書けば「今ままのコード」のような挙動になりますか?