laravelのドキュメントから:Database Transaction。 それは言う:Laravel DB :: transaction()にパラメータを渡す方法
ここDB::transaction(function() {
DB::table('users')->update(array('votes' => 1));
DB::table('posts')->delete();
});
、1が明示的にユーザーを更新するために、入力された... 私はそれがエラーをスローし、変数を使用して
$id = 3;
DB::transaction(function() {
DB::table('users')->where('id','=',$id)->get();
});
これを試してみました:
Undefined variable: id
このように$ idにパラメータとして配置しようとしました:
$id = 3;
DB::transaction(function($id) {
DB::table('users')->where('id', '=', $id)->get();
});
はそれでも、エラー:
Object of class Illuminate\Database\MySqlConnection could not be converted to string
は、私は何も悪いことをしたのでしょうか。お知らせ下さい。
$id = 3;
$transactionResult = DB::transaction(function($id) use ($id) {
$request_id = DB::table('requests')->insertGetId([
'company_id' => $company->$id,
]);
return $request_id ;
});
echo($transactionResult);
[匿名関数:クロージャとスコープ](http://www.php.net/manual/en/functions.anonymous.php) –
クロージャ内で$ idを変更すると、外に$ id? –
@CaptainHypertext外側の$ idを変更したいのであれば、次のように参照することができます: 'DB :: transaction(function($ id)use(&$ id){' –