Kohana ORM 不返回新添加记录的主键

Posted

技术标签:

【中文标题】Kohana ORM 不返回新添加记录的主键【英文标题】:Kohana ORM does not return primary key of newly added record 【发布时间】:2015-02-20 07:53:32 【问题描述】:

使用 PostgreSQL 的 Kohana ORM 中有趣的问题案例。

情况是这样的

$oM = ORM::factory('SomeModel');//Postgre SQL
//Column id is a primary key with some serial type
$oM->column = 'some value';
$oM->save();

var_dump($oM->id);//or $oM->pk();
//prints bool(true)

【问题讨论】:

【参考方案1】:

问题隐藏在序列权限中。作为极简权限设置的粉丝,我只为用户提供了表 id 序列的“更新”权限。

由于插入查询没有使用“Returning”语句,看来ORM读取了之后的序列值。当没有设置这个权限时,它只是返回“true”而不是一些警告或错误。

【讨论】:

以上是关于Kohana ORM 不返回新添加记录的主键的主要内容,如果未能解决你的问题,请参考以下文章

mybatis添加记录时返回主键id

mybatis添加记录时返回主键id

数据库—超键候选键主键外键

使用mybatis注解@Options实现添加记录时返回主键值

主键和外键

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