我设置了以下关系:
老师:
var $hasAndBelongsToMany = array(
'Classroom' => array(
'className' => 'Classroom',
'joinTable' => 'classrooms_teachers',
'foreignKey' => 'teacher_id',
'associationForeignKey' => 'classroom_id',
'unique' => true,
)
);课堂:
var $hasAndBelongsToMany = array(
'Teacher' => array(
'className' => 'Teacher',
'joinTable' => 'classrooms_teachers',
'foreignKey' => 'classroom_id',
'associationForeignKey' => 'teacher_id',
'unique' => true,
)
);
var $hasMany = array(
'Student' => array(
'className' => 'Student',
'foreignKey' => 'classroom_id',
'dependent' => false,
),
);学生:
var $belongsTo = array(
'Classroom' => array(
'className' => 'Classroom',
'foreignKey' => 'classroom_id',
),
);我正在尝试为教师创建一个仪表板,其中显示通过教室与教师关联的所有学生。
我正在使用以下find操作:
$students = $this->Teacher->Classroom->find('all', array(
'conditions' => array('Classroom.teacher_id' => $this->Access->getTeacherId()),
));但是,我得到了一个错误:Unknown column 'Classroom.teacher_id' in 'where clause'
我一定是做错了什么,因为蛋糕没有做联想。
有什么想法吗?
发布于 2011-08-09 10:20:03
这不是最好的方法。只需使用containable和find('first'),您不需要查找全部:
$students =$this->教师->find(‘first’,array( 'conditions‘=>数组(’Teacher.id‘=> $this->Access->getTeacherId()),’=>‘教室’=>数组(‘学生’);
这将使您获得与教师相关的所有教室,以及这些教室中的所有学生。
发布于 2011-08-09 09:30:05
这是实现这一目标的正确方法:
$this->Teacher->bindModel(array('hasOne' => array('ClassroomsTeachers')));
$students = $this->Teacher->find('all', array(
'conditions' => array('ClassroomsTeachers.teacher_id' => $this->Access->getTeacherId()),
'recursive' => 2
));我希望它能帮助一些人!
发布于 2013-03-10 06:55:45
https://stackoverflow.com/questions/6989293
复制相似问题