0
我想鏈接一個HABTM模型與連接,但我沒有從連接表中獲取任何記錄。
我有導師id = 2的數據,我也有這個id在教師的其他表中的主題,也是這個主題的關鍵。我不應該在其他表中獲得NULL。我沒有得到一個錯誤。HABTM加入沒有產生任何結果從相關陣列在cakephp
我希望導師id = 2的所有科目。
這裏是控制器和模型的關係
array(
(int) 0 => array(
'Subject' => array(
'id' => null,
'name' => null
),
'TutorsSubject' => array(
'id' => null,
'tutor_id' => null,
'subject_id' => null
),
'Tutor' => array(
'id' => '2',
'tutor_inactive' => false,
'first_name' => 'fred2',
'last_name' => 'blah',..........
class TutorsController extends AppController {
public function tutordetails() {
$options2['joins'] = array(
array('table' => 'tutors_subjects',
'alias' => 'TutorsSubject',
'type' => 'LEFT',
'conditions' => array(
'Tutor.id = TutorsSubject.tutor_id', //fixed 'Tutor.id = TutorsSubject.id', //
)
),
array('table' => 'subjects',
'alias' => 'Subject',
'type' => 'LEFT',
'conditions' => array(
'TutorsSubject.subject_id=Subject.id',
)
)
));
$options2['fields'] = array('Subject.*','TutorsSubject.*','Tutor.*');
$this->Tutor->recursive = -1;
$options2['conditions'] = array('Tutor.id' => 2);
$subject=$this->Tutor->find('all',$options2);
$this->set('subject', $subject);
debug($subject);
class Subject extends AppModel {
public $hasAndBelongsToMany = array(
'Tutor' => array(
'className' => 'Tutor',
'joinTable' => 'tutors_subjects',
'foreignKey' => 'subject_id',
'associationForeignKey' => 'tutor_id',
'unique' => 'keepExisting',
'conditions' => '',
)
);
}
class Tutor extends AppModel {
..
public $hasAndBelongsToMany = array(
'Subject' => array(
'className' => 'Subject',
'joinTable' => 'tutors_subjects',
'foreignKey' => 'tutor_id',
'associationForeignKey' => 'subject_id',
'unique' => 'keepExisting',
'conditions' => '',
),
);
UPDATE=AgRIZZO solved it and changed made above
你已經使用了'$ this-> Tutor-> recursive = -1;'來防止從相關模型中獲取記錄。 – 2014-09-19 04:23:41
在這裏找到詳細信息http://book.cakephp.org/2.0/en/models/model-attributes.html#recursive – 2014-09-19 04:27:35
沒有沒有解決這個問題!因爲我沒有得到不同的遞歸值的記錄。是的,我知道的遞歸參數,並且不管我遞歸如何遞歸,我都沒有得到分類記錄。我已經閱讀了文檔。 – ajt 2014-09-19 05:22:37