2012-01-14 52 views
2

- > save()调用以获取最后一个插入ID之后有什么办法吗?Kohana 3 ORM检索最后一个插入ID

示例代码:

$post_data = $_POST; 
$user = ORM::factory('user'); 
$user->username = $post_data['username']; 
$user->email = $post_data['email']; 
$user->save(); 

回答

4

当然,假设你插入的代码看起来像这样:

$user = ORM::factory('user')->values($post)->save(); 

得到最后插入ID根本就这个调用->save()

echo $user->id; 

在你的情况,你会需要后因为您已经命名了主键user_id,因此请执行$user->user_id

我会建议或者biakaveron的建议改用$user->pk(),因为它总是返回主键的值,无论给它的名字的,前提是你在你的模型$_primary_key指定主键的名称。

如果插入工作,将使用保存的值填充模型,以备重新使用。

工作完成!

+0

我更新了我的问题......而$ user-> id给了我一个错误。 ** id属性在Model_User类中不存在** 。但是我可以通过调用'$ user-> pk()'来获得最后一个插入ID。 – 12Bo 2012-01-14 20:33:19

+0

你的用户表有一个名为'id'的主键吗? – 2012-01-14 20:40:58

+0

我的模型用户表: 'Class Model_User extends ORM { protected $ _primary_key ='user_id'; }' – 12Bo 2012-01-14 22:48:26

1

只需拨打$model->id; - ORM会做最后的插入ID包容你。