首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5-在事务中获取新插入的id?

Laravel 5-在事务中获取新插入的id?
EN

Stack Overflow用户
提问于 2016-08-12 03:53:56
回答 3查看 2.9K关注 0票数 4

因此,我正在运行一个事务,它应该创建一个用户,并触发一个事件来使用新的用户id做其他事情,包括创建一个设置表,其中设置表中的外键user_id是新创建的user_id (当然,提供事务工作)。

这是我到目前为止所知道的:

代码语言:javascript
复制
DB::beginTransaction();

try {
    DB::table('users')->insert([
              'email' => $email,
              'password' => $password
    ]);

    event(new UserWasStored($newUserId)); // How do I get the $newUserId?
}
catch(\Exception $e) {
    DB::rollback();
}

DB::commit();

如何将$newUserId传递给事务内的事件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-12 03:57:52

根据documentation,您应该使用insertGetId方法

代码语言:javascript
复制
$newUserId= DB::table('users')->insertGetId([
    'email' => $email,
    'password' => $password
]);
票数 8
EN

Stack Overflow用户

发布于 2016-08-12 04:03:58

您还可以使用User模型来创建新用户。作为回报,它将为您提供要使用的user对象。

代码语言:javascript
复制
$user = User::create([
    'email'     => 'john@example.com',
    'password'  => bcrypt('your-password')
]);

dd($user->id);
票数 1
EN

Stack Overflow用户

发布于 2016-08-12 04:00:54

代码语言:javascript
复制
$id = DB::table('table')->insert( $data )->lastInsertId();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38905024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档