在我的数据库中,我有一个jobs
表,一个details
表和一个employers
表。
jobs
和details
属于一对一关系,employers
和details
属于一对多关系。并非所有工作都有详细信息,但所有细节都有一个雇主。
我认为从id
中删除details
字段并使用job_id
字段作为主键是有意义的。数据库引擎是InnoDB,因此主键连接应该是快速的。
因此,在更改表格并在details
模型中添加主键声明后,我仍然可以通过$job->detail
访问详细信息。但是,这行代码:
$employer = $job->detail->employer->name;
生成错误:
未定义的索引:detail_job_id
除了自定义主键之外我没有改变任何内容,所以我知道这是问题的根源,但我之前从未使用过自定义主键,所以我不确定导致错误的原因是什么,或者我需要什么修复。
有人使用Kohana2 ORM和自定义主键吗?
答案 0 :(得分:1)
AFAIR,在v2.3.4中,您可以使用$foreign_key
属性为相关模型定义FK。像protected $foreign_key = array('employer' => 'detail_id');