在数据库中,我有一个jobs
表、一个details
表和一个employers
表。jobs
和details
是一对一关系,employers
和details
是一对多关系。不是所有的工作都有细节,但所有的细节都有一个雇主。
我认为将id
字段从details
中删除并使用job_id
字段作为主键是有意义的。数据库引擎是InnoDB,所以主键连接应该是闪电般的快。
因此,在更改表并在details
模型中添加主键声明之后,我仍然可以通过$job->detail
访问详细信息。但是,这一行代码:
$employer = $job->detail->employer->name;
生成错误:
未定义索引:详细作业id
除了自定义主键之外,我什么都没有更改,所以我知道这是问题的根源,但我以前从未使用过自定义主键,所以我不确定是什么导致了错误,也不知道需要修复什么。
有人用自定义主键的Kohana2 ORM吗?
最佳答案
AFAIR,在v2.3.4中,您可以使用$foreign_key
属性为相关模型定义FK。类似于protected $foreign_key = array('employer' => 'detail_id');
关于php - Kohana 2 ORM定制主键生成错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6091281/