お世話になっております。
現在Cakephp3を使って開発をしております。
その中で、クエリビルダのcontainを利用しようと以下のコードを書き
ログにて作成されたクエリを確認した所test1しか反映(JOINの条件として追加)されておりませんでした。
意図した動作としてはcontainに書いた全てが結合される事なのですが。。。
Cakeの知見が乏しくなぜ意図した結果が得られないのか原因が分からず困惑しております。
どうか皆様のお知恵をお貸し頂けないでしょうか。
コードの不足等が御座いましたら書ける範囲で追記させて頂きます。
initializeメソッド
php
1 public function initialize(array $config) 2 { 3 parent::initialize($config); 4 5 $this->setTable('thisTable'); 6 $this->setDisplayField('id'); 7 $this->setPrimaryKey('id'); 8 9 $this->belongsTo('test1', [ 10 'foreignKey' => 'a_id', 11 'joinType' => 'INNER' 12 ]); 13 $this->belongsTo('test2', [ 14 'foreignKey' => 'b_id', 15 'joinType' => 'INNER' 16 ]); 17 $this->hasMany('test3', [ 18 'foreignKey' => 'c_id', 19 'dependent' => true, 20 ]); 21 $this->hasMany('test4', [ 22 'foreignKey' => 'd_id', 23 'dependent' => true, 24 ]); 25 $this->hasMany('test5', [ 26 'foreignKey' => 'e_id', 27 'dependent' => true, 28 ]); 29 }
php
1 $query = $this->find('all'); 2 $query->contain('test1','test2','test3','test4','test5'); 3 $query->where(['test1.a_id' => $id]); 4 5 \Cake\Log\Log::error($query->sql());
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。