因此,我正在运行一个事务,它应该创建一个用户,并触发一个事件来使用新的用户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传递给事务内的事件?
发布于 2016-08-12 03:57:52
根据documentation,您应该使用insertGetId方法
$newUserId= DB::table('users')->insertGetId([
'email' => $email,
'password' => $password
]);发布于 2016-08-12 04:03:58
您还可以使用User模型来创建新用户。作为回报,它将为您提供要使用的user对象。
$user = User::create([
'email' => 'john@example.com',
'password' => bcrypt('your-password')
]);
dd($user->id);发布于 2016-08-12 04:00:54
$id = DB::table('table')->insert( $data )->lastInsertId();https://stackoverflow.com/questions/38905024
复制相似问题