Kohana ORM Aliasing和“试图获得非对象的财产”

时间:2010-05-11 19:12:00

标签: php kohana kohana-orm

我在数据库中有以下表格:

  • 队:
    • ID
    • 名称
  • 匹配:
    • ID
    • team1_id
    • team2_id

我在ORM v2.3.4应用程序中定义了以下Kohana模型:

class Match_Model extends ORM {
  protected $belongs_to = array('team1_id' => 'team', 'team2_id' => 'team');
}

class Team_Model extends ORM {
  protected $has_many = array('matches');
}

控制器中的以下代码:

$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */

在标有/* <--- */的链接上抛出以下错误:

尝试获取非对象的属性

框架正在产生外键的值而不是对Match_Model实例的引用(应该给出has_many和belongs_to属性)。

我错过了什么吗?

注意:以防万一,我在application / config / inflector.php中添加了不规则复数'match' => 'matches'

1 个答案:

答案 0 :(得分:0)

已解决! Kohana社区给了我answer

$ belongs_to属性的正确值是:

class Match_Model extends ORM {
  protected $belongs_to = array('team1' => 'team', 'team2' => 'team');
}

documentation声明:

class Blog_Post_Model extends ORM { 
    protected $belongs_to = array('author' => 'user', 'editor' => 'user'); 
}
     

blog_posts数据库表会   现在有2列,   blog_posts.author_id和   blog_posts.editor_id,两者都会   拥有users.id中存在的值。

似乎我错过了这一行,:))