Kohana 2 ORM 自定义主键生成错误

Posted

技术标签:

【中文标题】Kohana 2 ORM 自定义主键生成错误【英文标题】:Kohana 2 ORM custom primary key generating an error 【发布时间】:2011-05-22 22:37:34 【问题描述】:

在我的数据库中,我有一个jobs 表、一个details 表和一个employers 表。

jobsdetails 是一对一的关系,employersdetails 是一对多的关系。并非所有工作都有详细信息,但所有详细信息都有一个雇主。

我认为从details 中删除id 字段并使用job_id 字段作为主键是有意义的。数据库引擎是 InnoDB,所以主键连接应该快如闪电。

所以在更改表并在details 模型中添加主键声明后,我仍然可以通过$job->detail 访问详细信息。但是,这行代码:

$employer = $job->detail->employer->name;

产生错误:

未定义索引:detail_job_id

除了自定义主键之外,我没有更改任何内容,所以我知道这是问题的根源,但我以前从未使用过自定义主键,所以我不确定是什么导致了错误或我需要什么修复。

有人使用带有自定义主键的 Kohana2 ORM 吗?

【问题讨论】:

【参考方案1】:

AFAIR,在 v2.3.4 中,您可以使用 $foreign_key 属性为相关模型定义 FK。类似protected $foreign_key = array('employer' => 'detail_id');

【讨论】:

以上是关于Kohana 2 ORM 自定义主键生成错误的主要内容,如果未能解决你的问题,请参考以下文章

Kohana-v3 ORM 父关系

Kohana 3.2 验证复合主键

django ORM模型常用字段字段常用参数

Kohana 3.2 中使用 ORM 模型(结果)的字段的自定义过滤器

Mybatis框架---Mybatis自定义插件生成雪花ID做为表主键项目

PetaPoco微型ORM的使用错误记录