###前提・実現したいこと
同じテーブルの区分情報をJoinしてデータを取得したいと思っています。
そのため、belongsToを使用し、発行したSQLが別名となるようにしたい
現在発行されるSQLだと//km_Aの箇所が上書きされて//km_Bの箇所のSQLのみが発行されてしまう
よろしくお願いします。
SQL取得イメージ
sql
1select 2 AA.* 3 , km_A.kbn_name 4 , km_B.kbn_name 5from 6 AA 7 left outer join kbn_master km_A 8 on km_A.subject_id = 3 9 and km_A.kbn_id = AA.c_kbn 10 left outer join kbn_master km_B 11 on km_B.subject_id = 4 12 and km_B.kbn_id = AA.d_kbn 13; 14
###該当のソースコード
cakephp
1class StudiosTable extends Table 2 3public function initialize(array $config) 4 { 5 6 //km_A 7 $this -> belongsTo('KbnMasters', [ 8 'bindingKey' => 'kbnid', 9 'foreignKey' => 'km_A', 10 'conditions'=>['subjectid' => '3' ], 11 'joinType' => 'LEFT']); 12 //km_B 13 $this -> belongsTo('KbnMasters', [ 14 'bindingKey' => 'kbnid', 15 'foreignKey' => 'km_B', 16 'conditions'=>['subjectid' => '4' ], 17 'joinType' => 'LEFT']); 18 } 19 20
cakephp
1class StudiosController extends AppController { 2 3public function view($id = null) { 4// 結果を取得する 5 $aa = $this -> AA-> get($id, ['contain' => ['KbnMasters']]); 6} 7
###補足情報(言語/FW/ツール等のバージョンなど)
cakephp3
FriendsOfCake/searchプラグインを使用中
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/06 04:33 編集