belongsToMany関係のユーザーとコーステーブルがあります。 USERTABLEはCakePHP3で関連するbelongsToManyエンティティを取得する方法
$this->belongsToMany('Courses', [
'foreignKey' => 'user_id',
'targetForeignKey' => 'course_id',
'joinTable' => 'courses_users'
]);
を持っており、CoursesTableは私がuser_idを持つコースを取得したい、今すぐ
$this->belongsToMany('Users', [
'foreignKey' => 'course_id',
'targetForeignKey' => 'user_id',
'joinTable' => 'courses_users'
]);
を持っています。私のCoursesControllerで、私はこのコードで($コース)をデバッグするとき、私は
public function myCourses()
{
$id = $this->Auth->user('id');
$courses = $this->Courses->find('all',
['contain' => ['Users'],
'condition' => ['Courses.user_id' => $id]
]);
$this->set('courses', $courses);
}
を試してみました、私は「(ヘルプ)」を得た=>「これは、結果が実行取得したり、それを繰り返すために、Queryオブジェクトです。」メッセージ。私は情報を探して何時間もやろうとしていますが、それはできません。 user_idでコースデータを取得するにはどうすればよいですか?前もって感謝します。
ありがとうございました!これはまさに私が尋ねたものです! 1つは、 "function($ q)"の後に "use($ id)"が必要だということです。 $ query-> matching( 'Users'、function($ q)use($ id){ return $ q-> where (['Users.id' => $ id]); }); –
素敵な説明! –