Kohana ORM 别名和“尝试获取非对象的属性”
-
26-09-2019 - |
题
我的数据库中有以下表格:
- 团队:
- 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 中的值。
看来我错过了那条线,:)
不隶属于 StackOverflow