FuelPHP ORM - 未找到属性

Posted

技术标签:

【中文标题】FuelPHP ORM - 未找到属性【英文标题】:FuelPHP ORM - Property not found 【发布时间】:2012-06-29 19:07:43 【问题描述】:

我正在尝试在 Fuelphp 中使用 ORM 构建模型,之前从未使用过 ORM,因此不确定某些方面。

我有一个表 Project 和一个表 Revision。现在,项目有多个修订版,修订版只有一个项目。

但是,我在 Project 和 Revision 之间有一个额外的链接,我始终在我的 Project 表中保留最新版本的 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.

我错过了什么吗?

谢谢!

【问题讨论】:

正确吗? > - id - latest_revision_id - ... 看来你的表名不对 哎呀!很抱歉造成混乱,这只是我帖子中的一个错字。真正的表名是projects 我有一段时间没用燃料了,等我回家我会看到我的旧项目来解决问题:) 【参考方案1】:

看来我必须将 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',
);

【讨论】:

以上是关于FuelPHP ORM - 未找到属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FuelPHP 中为关系查询添加条件?

使用 FuelPHP 从 ORM 返回 _data 数组

向 FuelPHP 模型属性添加动态表单字段选项

FuelPHP的orm和mysql不区分大小写`like`

如何为fuelphp ORM关系设置动态条件

FuelPHP ORM无法插入相关表