表:graduate_applicants
CREATE TABLE IF NOT EXISTS `graduate_applicants` (
`grat_id` int(10) NOT NULL auto_increment,
`studentnum` int(9) NOT NULL,
`QuarterID` int(10) NOT NULL,
PRIMARY KEY (`grat_id`)
)
表:stu_students
CREATE TABLE IF NOT EXISTS `stu_students` (
`id` int(11) NOT NULL auto_increment,
`studentid` int(9) default NULL,
`firstname` varchar(50) default NULL,
`lastname` varchar(50) default NULL,
`email` varchar(100) default NULL,
PRIMARY KEY (`id`),
KEY `studentid` (`studentid`),
)
模型:
class GraduateApplicant extends AppModel{
var $name = 'GraduateApplicant';
var $tablePrefix = '';
var $belongsTo = array('Student' => array('className' => 'Student','foreignKey' => false,''conditions' => array('Student.studentid=GraduateApplicant.studentnum'),'fields' => '','order' => ''),);
}
控制器:
$list = $this->paginate('GraduateApplicant');
我无法理解为什么$ list是空的?
答案 0 :(得分:0)
如果您设置表格以正确反映它们之间的关系,CakePHP确实可以让您的生活更轻松。您可以将代码减少90%,因为您不必尝试手动指定表的链接方式。
students
---------------------------------------------
id | firstname | lastname | email
graduate_applicants
------------------------------------
id | student_id | quarter_id
那么你的模型很简单:
class GraduateApplicant extends AppModel {
public $belongsTo = array('Student');
}
如果这是一个选项,我建议像这样正确设置数据库表,而不是让学生ID列在不同的表中被称为不同的东西(Student.studentid
,GraduateApplicant.studentnum
)
如果您将模型命名为正确反映您的表名,它也将使您的生活更轻松。您的表名为stu_students
,但您的模型名为Student
。您应该为表格students
和模型Student
,表格stu_students
和模型StuStudent
命名。