前提・実現したいこと
CakePHP4でhasMany関係にあるテーブルの要素を取りだしたく下記の記事を参考にクロージャを実装したのですが、Unknown Columnが出てしまいます。
https://qiita.com/azukiazusa/items/f8a7f002ca2bb5637772
前提としてそもそもこういう取り方は出来ないのでしょうか。
解決策があり、記述やモデル周りで間違っている箇所や追記が必要な箇所がございましたら教えていただけると幸いです。
発生している問題・エラーメッセージ
SQLSTATE[42S22]: Column not found: 1054 Unknown column
該当のソースコード
Controller
PHP
1 $object = $this->Users->find() 2 ->contain([ 3 'Hobby' => function ($q) { 4 $q->select([ 5 'Hobby.id', 6 'Hobby.user_id', 7 'Hobby.name', 8 'Hobby.status', 9 ]); 10 11 return $q; 12 },]) 13 ->select([ 14 'Users.id', 15 'Users.name', 16 'Users.kana', 17 'Hobby.id', 18 'Hobby.user_id', 19 'Hobby.name', 20 'Hobby.status', 21 ]) 22 ->where(['Hobby.id' => 1]) 23 ->all();
Model
└ UsersTable
PHP
1 $this->hasMany('Hobby', [ 2 'foreignKey' => 'user_id', 3 ]);
あなたの回答
tips
プレビュー