Kohana 3 ORM检索最后一个插入ID
Posted
技术标签:
【中文标题】Kohana 3 ORM检索最后一个插入ID【英文标题】:Kohana 3 ORM retrieve last insert ID 【发布时间】:2012-01-14 20:22:26 【问题描述】:在 ->save() 调用之后有没有办法获取最后一个插入 id?
示例代码:
$post_data = $_POST;
$user = ORM::factory('user');
$user->username = $post_data['username'];
$user->email = $post_data['email'];
$user->save();
【问题讨论】:
【参考方案1】:当然,假设您的插入代码如下所示:
$user = ORM::factory('user')->values($post)->save();
要获取最后一个插入 ID,只需在调用 ->save()
之后执行此操作
echo $user->id;
在您的情况下,您需要执行 $user->user_id
,因为您已将主键命名为 user_id
。
我会建议 biakaveron 的建议改为使用 $user->pk()
,因为它总是会返回主键的值,而不管赋予它的名称如何,前提是您在模型中使用 $_primary_key
指定主键名称。
如果插入有效,模型将填充已保存的值以供重复使用。
任务完成!
【讨论】:
我更新了我的问题...并且 $user->id 给了我一个错误。 Model_User 类中不存在 id 属性。但我可以通过调用$user->pk()
来获取最后一个插入 ID。
你的用户表是否有一个名为id
的主键?
我的模型用户表:Class Model_User extends ORM protected $_primary_key = 'user_id';
这就是为什么你应该总是使用->pk()
而不是->id
我已经更新了我的答案。 @biakaveron 谢谢你的建议。【参考方案2】:
只需致电$model->id;
- ORM 将为您完成最后的插入 id 包含。
【讨论】:
以上是关于Kohana 3 ORM检索最后一个插入ID的主要内容,如果未能解决你的问题,请参考以下文章