【发布时间】:2014-09-18 14:23:56
【问题描述】:
我正在尝试将 HABTM 模型与联接链接,但我不断收到此错误。 Tutor 有一张独特的桌子,所以我不确定为什么会出现这个错误? 这里是控制器和模型的关系
错误:SQLSTATE[42000]:语法错误或访问冲突:1066 Not unique table/alias: 'Tutor'
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' => '',
),
);
class TutorsController extends AppController {
public function tutordetails() {
// $tutor=$this->Tutor->find('all', array( 'conditions'=>array('Tutor.id'=> 1),'recursive' => -1 ) );
// $this->set( 'tutor',$tutor);
// debug($tutor);
$options2['joins'] = array(
array('table' => 'tutors_subjects',
'alias' => 'TutorsSubject',
'type' => 'LEFT',
'conditions' => array(
'Tutor.id = TutorsSubject.id',
)
),
array('table' => 'subjects',
'alias' => 'Subject',
'type' => 'LEFT',
'conditions' => array(
'TutorsSubject.subject_id=Subject.id',
)
),
array( 'table' => 'tutors',
'alias' => 'Tutor',
'type' => 'LEFT',
'conditions' => array(
'TutorsSubject.tutor_id = Tutor.id',
)
));
$options2['fields'] = array('Subject.*','TutorsSubject.*','Tutor.*');
$options2['conditions'] = array('Tutor.id' => 2);
$subject=$this->Tutor->find('first',$options2);
$this->set('subject', $subject);
debug($subject);
【问题讨论】:
标签: cakephp