Laravel5 トランザクションで引数を渡す方法
Laravel5
でトランザクションを行う場合は以下のように実装します。
DB::transaction(function()
{
//一連の登録処理を実装
});
トランザクションの外で定義した変数を、トランザクションの中で参照したい場合、以下のようにしてもうまくいきません。
$name = 'sample'; //トランザクションの外で定義した変数
DB::transaction(function()
{
$user = New User;
$user->name = $name; //参照できないためエラー
});
use
を使用すればトランザクションの中でも参照することができます。
$name = 'sample'; //トランザクションの外で定義した変数
DB::transaction(function() use ($name)
{
$user = New User;
$user->name = $name; //OK
});
これでリクエストの情報($request
)を渡して登録・更新処理も行うことができます。