Z dokumentacji laravel: Database Transaction. Mówi ona, że:Jak przekazać parametr do Laravel DB :: transaction()
DB::transaction(function() {
DB::table('users')->update(array('votes' => 1));
DB::table('posts')->delete();
});
Tutaj 1 jest wyraźnie wpisany do aktualizacji użytkownikom ... próbowałem to przy użyciu zmiennej,
$id = 3;
DB::transaction(function() {
DB::table('users')->where('id','=',$id)->get();
});
zgłasza błąd:
Undefined variable: id
Próbowałem również umieścić na $ id jako parametr podobny do tego:
$id = 3;
DB::transaction(function($id) {
DB::table('users')->where('id', '=', $id)->get();
});
Mimo błędu:
Object of class Illuminate\Database\MySqlConnection could not be converted to string
Czy zrobiłem coś złego? Proszę doradź. Dzięki ...
Zalecany wykład: [Funkcje anonimowe: Zamknięcia i Scoping] (http://www.php.net/manual/en/functions.anonymous.php) –
Jeśli zmienisz $ id wewnątrz zamknięcia, wpłynie to na $ id na zewnątrz? –
@CaptainHypertext Niekoniecznie, jeśli chcesz zmienić zewnętrzny identyfikator $ id, możesz po prostu odwołać się do niego w następujący sposób: 'DB :: transaction (function ($ id) use (& $ id) {' –