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

  • 团队:
    • ID
    • 姓名
  • 火柴:
    • ID
    • team1_id
    • team2_id

我定义了以下内容 ORM 我的模型 小花 v2.3.4应用程序:

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 属性)。

我错过了什么吗?

笔记:以防万一,我添加了不规则复数 'match' => 'matches' 在应用程序/配置/inflector.php

有帮助吗?

解决方案

解决了! Kohana 社区给了我 回答:

$belongs_to 属性的正确值是:

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

文档 指出:

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 中的值。

看来我错过了那条线,:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top