2012-01-14 15 views
2

最後の挿入IDを取得するために - > save()呼び出しの後に方法がありますか?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->user_idのように、主キーの名前をuser_idとします。

$_primary_keyでモデルのプライマリキー名を指定している場合は、の代わりに、プライマリキーの値を常に返しますので、biakaveronのアドバイスを代わりに使用することをお勧めします。

モデルには、保存された値が挿入されていれば、再利用できる状態になります。

ジョブ完了!

+0

私の質問が更新されました。$ user-> idはエラーです。 ** idプロパティは、Model_Userクラス** に存在しません。しかし、私は '$ user-> pk()'を呼ぶことによって最後の挿入IDを得ることができます。 – 12Bo

+0

あなたのユーザテーブルに 'id'というプライマリキーがありますか? –

+0

マイモデルユーザーテーブル: 'Class Model_User extends ORM { 保護された$ _primary_key = 'user_id'; } ' – 12Bo

1

だけ$model->id;を呼び出す - ORMはあなたのための最後の挿入のidを含めることを行います。

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

最後のインサートIDを取得するには、単にあなたがする必要があるでしょう、あなたの場合は->save()

echo $user->id; 

への呼び出し後に次の操作を行います。あなたの挿入コードを仮定もちろん

関連する問題