Php 我如何创建一个“属于”一个“有多个通过”连接模型的模型?
我将使用CakePHP手册中的CourseMembership示例来说明我的问题。因此,有以下表格: 创建表格课程 id INT非空主键, 课程名称VARCHAR255 ; 创建表学生 id INT非空主键, 学生姓名VARCHAR255 ; 创建表格课程\ U成员资格 课程id INT不为NULL REFERENCEScourse.id, 学生id INT不为NULL referencestudent.id, 出席讲座TINYINT不为空默认值0, 主键课程号,学生号 ; 我的模型是这样的:Php 我如何创建一个“属于”一个“有多个通过”连接模型的模型?,php,cakephp,relationship,cakephp-2.4,Php,Cakephp,Relationship,Cakephp 2.4,我将使用CakePHP手册中的CourseMembership示例来说明我的问题。因此,有以下表格: 创建表格课程 id INT非空主键, 课程名称VARCHAR255 ; 创建表学生 id INT非空主键, 学生姓名VARCHAR255 ; 创建表格课程\ U成员资格 课程id INT不为NULL REFERENCEScourse.id, 学生id INT不为NULL referencestudent.id, 出席讲座TINYINT不为空默认值0, 主键课程号,学生号 ; 我的模型是这样的
class Course extends AppModel {
public $hasMany = array('CourseMembership');
}
class Student extends AppModel {
public $hasMany = array('CourseMembership');
}
class CourseMembership extends AppModel {
public $belongsTo = array('Course', 'Student');
}
将CourseMembershipProperty模型/表添加到此设置的最佳方法是什么?我对模型类中的模式和关系配置都很好奇
这些关系应该是:
CourseMembership属性属于CourseMbership
CourseMembership具有许多CourseMbership属性。
为简单起见,CourseMembershipProperty模型的表可以有两个VARCHAR字段,即name和value。有几个问题: 您的表名应为复数: 课程应该是课程 学生应该是学生 课程(u)会籍应为课程(u)会籍 请注意CakePHP食谱中的这一部分: CakePHP不支持复合主键 course_memberships表应具有自动递增的id主键,并且course_id和student_id的复合主键应被删除并用作外键。如果不首先纠正这个问题,CourseMembership模型将出现错误 在这之后,CourseMembershipProperty模型应该通过使用一个外键course_membership_id链接到CourseMbership模型。这应该通过简单地定义您在示例中所拥有的模型来实现,因为此时我们将遵循CakePHP命名约定