【发布时间】:2010-05-11 19:12:00
【问题描述】:
我在数据库中有以下表格:
- 团队:
- 身份证
- 姓名
- 匹配:
- 身份证
- team1_id
- team2_id
我在Kohana v2.3.4 应用程序中定义了以下ORM 模型:
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'
【问题讨论】:
-
你用的是KO2还是KO3?我不太了解 KO2,但在 KO3 中,这些实例变量前面带有下划线(即 _belongs_to、_has_many)。
-
谢谢。我已将 kohana 版本添加到问题中。-
-
您是否在
$match上尝试过print_r以查看该变量中的确切内容? -
我已经尝试过 Kohana::debug($match) 并且我可以看到 $match->team1_id 只包含一个数值(该列中存储在数据库中的值)
标签: php kohana kohana-orm