Laravel - 在attach()和detach()之后检查查询执行

时间:2016-10-07 13:53:04

标签: php database laravel laravel-5.3

执行此

$shop->articles()->attach($article_id);

或者

$shop->articles()->detach($article_id);

我如何确保他们真的被执行?在第一种情况下,它返回void,但它也会自动保存,所以我不能使用save函数来检查它。在第二种情况下,它返回int,但它代表什么?

1 个答案:

答案 0 :(得分:0)

您可以使用try/catchDB::transaction/commit/rollback

try{
    \DB::transaction(function() use($shop, $article_id) {
        $shop->articles()->attach($article_id);
    });

    \DB::commit();
} catch (\Exception $e) {
    \DB::rollback();

    return redirect()->back()->withErrors(collect($e->getMessage()));
}