2017-11-05 1 views
1

Ich arbeite mit Transaktionen in Laravel 5, bisher habe ich die Ergebnisse einer beliebigen Methode außerhalb der Aussage mit einem Referenzparameter & $, aber ich rot das ist eine schlechte Praxis, weil der Operator "&" ist veraltet. Gibt es eine andere Möglichkeit, den Wert eines var außerhalb des Transaktionsbereichs zu erhalten?Laravel Rückgabewert aus Transaktionen

dies ist ein Codebeispiel:

public function post(Request $request, Persona $persona) 
{ 
    try { 
     DB::transaction(function() use ($request, &$result) {   
      $result = Persona::create($request->all()); 
      // ... Moooore code omitted 
     }); 

     // Do more thing with $result 
     $result; 
    } // ... 
}} 

Antwort

1

Verwenden DB::beginTransaction() und DB::commit() statt:

DB::beginTransaction(); 
try { 
    $result = Persona::create($request->all()); 
    DB::commit(); 
} catch (Exception $e) { 
    DB::rollBack(); 
} 

Laravel 5.5: Database Transactions

0

Es ist nicht so kompliziert, kehrt nur das Ergebnis in Ihrer Transaktion;)

public function post(Request $request, Persona $persona) 
{ 
    try { 
     $result = DB::transaction(function() use ($request) {   
      $result = Persona::create($request->all()); 
      // ... Moooore code omitted 
      return $result; 
     }); 

     // Do more thing with $result 
     $result; 
    } // ... 
}} 
+0

Nein, Rückgabe innerhalb von Transaktionen funktioniert nicht für mich !! –