我擁有具有belongsToMany關係的Users和Courses表。用戶表具有如何使用CakePHP3獲取關聯的belongsToMany實體
$this->belongsToMany('Courses', [
'foreignKey' => 'user_id',
'targetForeignKey' => 'course_id',
'joinTable' => 'courses_users'
]);
和CoursesTable具有
$this->belongsToMany('Users', [
'foreignKey' => 'course_id',
'targetForeignKey' => 'user_id',
'joinTable' => 'courses_users'
]);
現在,我要取得與USER_ID課程。在我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);
}
當我調試($課程)使用此代碼,我得到了「(幫助)」 =>「這是一個查詢對象,得到的結果執行或重複它。」信息。我正在搜索信息並試圖做很多小時,但我無法做到。我如何使用user_id獲取課程數據?提前致謝。
太謝謝你了!這正是我所問的!有一件事是我需要在「function($ q)」之後使用「($ id)」 $ query-> matching('Users',function($ q)use($ id){return} $ q-> where (['Users.id'=> $ id]); }); –
很好的解釋! –