Laravel5.4で、データベーストランザクション(Database Transactions)です。DBファサードのトランザクションメソッドを使用することで、クエリビルダーとEloquent ORMのトランザクションも制御できるとのこと。
/app/Http/Controllers/BlogsController.php
参考サイト
Database Transactions(Laravel)
Transaction with Eloquent Laravel 5(Stack Overflow)
/app/Http/Controllers/BlogsController.php
use Illuminate\Support\Facades\DB;
public function destroy($id)
{
DB::beginTransaction();
try {
$blog = Blog::find($id);
$blog->comments()->detach();
$blog->delete();
DB::commit();
$success = true;
} catch (\Exception $e) {
$success = false;
DB::rollback();
}
if ($success) {
// 成功した場合の処理
}
}
参考サイト
Database Transactions(Laravel)
Transaction with Eloquent Laravel 5(Stack Overflow)