1
我在我的Laravel 5.1應用程序中有一組刪除語句,這些語句是放在事務中的。Laravel 5.1重定向在一個事務處理塊中
我有我的代碼如下,並試圖返回到同一頁面。但我得到一個空白頁。我的routes.php很好。
DB::transaction(function() use ($foo, $bar, $request)
{
// Delete from table abc
$deletedFoo = DB::delete('delete from abc where id = ' . $foo);
// Delete from table xyz
$deletedBar = DB::delete('delete from xyz where id = ' . $bar);
// Shows blank page
$request->session()->flash('changes_saved', 'Success! All your changes were saved.');
return back();
});
但是,如果我把返回starement DB ::事務塊之外它工作正常。
DB::transaction(function() use ($foo, $bar)
{
// Delete from table abc
$deletedFoo = DB::delete('delete from abc where id = ' . $foo);
// Delete from table xyz
$deletedBar = DB::delete('delete from xyz where id = ' . $bar);
});
// Goes back to the page with the message
$request->session()->flash('changes_saved', 'Success! All your changes were saved.');
return back();
在我意識到需要將重定向放在事務之外之前,我嘗試了各種各樣的事情。但爲什麼?我是Laravel的新手,在這裏有點困惑。
如果我查看您的第一個片段,您將如何將您的返回返回(); ....對不起,如果這是一個愚蠢的問題。但是,如果你喜歡這樣,你不會看到你將如何重定向。 – KalC
答案非常清楚,只需在'DB :: transaction(...);'之類的'DB :: transaction()'之前放置'return',剩下的代碼就會保持不變。 –
工作!非常感謝。 – KalC