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

Laravel - Check query execution after attach() and detach()

我执行后

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

或者这个

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

我如何确保它们真正被执行?在第一种情况下,它 returns 无效,但它也会自动保存,所以我无法使用保存功能来检查它。在第二种情况下它 returns int,但它代表什么?

你用 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()));
}