所以我正在运行一个应创建用户的事务,并触发事件以使用新用户ID执行其他操作,包括创建一个设置表,其中设置表中的外键user_id是新创建的user_id(当然提供交易工作。)
这是我到目前为止所做的:
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
传递给事件?
答案 0 :(得分:6)
根据documentation,您应该使用insertGetId
方法
$newUserId= DB::table('users')->insertGetId([
'email' => $email,
'password' => $password
]);
答案 1 :(得分:1)
您还可以使用User
模型创建新用户。作为回报,它将为您提供要使用的用户对象。
$user = User::create([
'email' => 'john@example.com',
'password' => bcrypt('your-password')
]);
dd($user->id);
答案 2 :(得分:0)
$id = DB::table('table')->insert( $data )->lastInsertId();