我正在尝试在FuelPHP中使用ORM构建模型,以前从未使用过ORM,所以不确定某些方面。
我有一个表项目和一个表修订。现在,项目有多个修订版,修订版只有一个项目。
但是,我在"项目"和"修订"之间有一个额外的链接,我始终将最新修订版的 ID 保留在我的项目表中。
我的表如下所示:
projects
- id
- latest_revision_id
- ...
revisions
- id
- project_id
- ...
项目模型:
class Model_Project extends Orm'Model
{
protected static $_belongs_to = array(
'latest_revision' => array(
'key_from' => 'latest_revision_id'
),
);
protected static $_has_many = array(
'revisions',
);
...
}
修订模型:
class Model_Revision extends 'Orm'Model
{
protected static $_belongs_to = array(
'project',
);
protected static $_has_one = array(
'project' => array(
'key_to' => 'latest_revision_id',
),
);
}
但是,当我尝试访问时:
$project->latest_revision
它给了我一个 OutOfBoundException:OutOfBoundsException [ Error ]: Property "latest_revision_id" not found for Model_Project.
我错过了什么吗?
谢谢!
看起来我不得不将latest_revision_id添加到我的 $_properties 数组中。我发誓我在发布问题之前尝试过,但猜猜我当时有另一个问题!
所以我的项目模型现在:
protected static $_belongs_to = array(
'latest_revision' => array(
'key_from' => 'latest_revision_id',
'model_to' => 'Model_Revision',
),
);
protected static $_has_many = array(
'revisions',
);
protected static $_properties = array(
'id',
...,
'latest_revision_id',
);