Codeigniter 代码点火器datamapper orm模型继承与相关对象

Codeigniter 代码点火器datamapper orm模型继承与相关对象,codeigniter,orm,datamapper,Codeigniter,Orm,Datamapper,我正在使用Codeigniter 2.1.2中的DataMapper ORM: 我有这样的实体: Person -id PRIMARY KEY -name -lastname -age Student -person_id PRIMARY KEY -college -notebook_color -other attribute Address -id PRIMARY KEY -street -number -person_id 注

我正在使用Codeigniter 2.1.2中的DataMapper ORM:

我有这样的实体:

Person
-id             PRIMARY KEY
-name
-lastname
-age

Student
-person_id      PRIMARY KEY
-college
-notebook_color
-other attribute

Address
-id             PRIMARY KEY
-street
-number
-person_id
注:学生没有自己的主键。它使用个人ID作为主键

所以我的问题是。我想创建一个学生:

$student = new Student();
$student->get_by_person_id($id);
我希望
$student
拥有
person
的所有数据,包括附加数据。我尝试使用include_related()从
person
中获取字段,但这没有带来相关对象。 我希望我的
$student
看起来像:

$student                  ->id
                          ->name
                          ->lastname
                          ->age
                          ->college
                          ->notebook_color
                          ->other_attribute
                          ->address (array)
                             [0]    -> id
                                    -> street
                                    -> number

                             [1]    -> id
                                    -> street
                                    -> number

我如何才能让它工作?

您不能有一个名为“person\u id”的PK。Datamapper要求所有PK都被称为“id”。FK应该通过它们的关系名来调用,后缀为“\u id”。因此,FK in地址应称为“学生id”

此外,Datamapper不支持复合。所以没有办法合并个人和学生的记录