這是一個混亂的問題,因爲我試圖編寫一個使用兩個HABTM關係的蛋糕查找。CakePHP找到兩個HABTM關係
我有一個名爲projects的表,它與users表有HABTM關係。它使用中介表projects_users來處理HABTM關係。
然後用戶以前只與departments表具有belongsTo關係。 users表有一個名爲department_id的外鍵。但現在這種關係已經變成了HABTM;並且外鍵department_id被刪除,表department_users被創建。
所以老找說法,我正在改變,以前看這樣的:
$projectsUsers = $this->Project->ProjectsUser->find('all', array(
'conditions' => array(
'ProjectsUser.project_id' => 1,
'User.department_id' => 25
),
'recursive' => 0,
'contain' => array(
'User' => array(
'fields' => array(
'id',
'department_id'
)
)
)
));
必須改變,因爲users表中不再有部門標識。
所以我的第一個目標是改變上述以包括departments_users和departments。我試着註釋掉DEPARTMENT_ID領域和遞歸設置爲2。這是我的蛋糕查找聲明:
$projectsUsers = $this->Project->ProjectsUser->find('all', array(
'conditions' => array(
'ProjectsUser.project_id' => $projectId
),
'recursive' => 2,
'contain' => array(
'User' => array(
'fields' => array(
'id'
)
)
)
));
這是它在調試器中進行:
Array
(
[0] => Array
(
[ProjectsUser] => Array
(
[id] => 9999
[user_id] => 999
[project_id] => 999
[status] => active
)
[User] => Array
(
[id] => 999
)
)
...
我希望設置遞歸到2將包括部門,並在調試器中產生這樣的東西:
Array
(
[0] => Array
(
[ProjectsUser] => Array
(
[id] => 9999
[user_id] => 999
[project_id] => 999
[status] => active
)
[User] => Array
(
[id] => 999
)
[Department] => Array
(
[0] => Array
(
[id] => 9
[DepartmentsUser] => Array
(
[id] => 99999
[department_id] => 9
[user_id] => 9999
)
)
)
)
...
但是,這是我卡住的地方。我在網上發現了很多關於在cakePHP中顯示一個HABTM關係但不是兩個的帖子。我試過在包含內做一個包含;但這是一個錯誤。我甚至在蛋糕裏做了簡單的SQL;但它產生了一個沒有其他輸出的空數組。任何幫助,將不勝感激。謝謝。
感謝您指引我朝那個方向發展。我比現在更接近現在的工作。我想我會用我的新嘗試發表另一個問題。再次感謝你的幫助! – Joe 2015-01-15 21:46:25