2012-01-14 57 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包容你。