2012-06-29 40 views
0

我想在FuelPHP中使用ORM构建模型,之前从未使用过ORM,所以不确定某些方面。FuelPHP ORM - Property not found

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

但是,我有项目和版本之间的其他链接,我总是保留在我的项目表中的最新版本的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.

我错过了什么吗?

谢谢!

+0

是正确的吗? << products >> - ID - latest_revision_id - ... 看来,你的表名是不正确 –

+0

Oups!对不起,我的文章只是一个错字。真正的表名是项目 – jValdron

+0

我没有使用燃料一段时间,当我回家时我会看到我的旧项目的解决方案:) –

回答

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', 
);