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/catch
和 DB::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()));
}
我执行后
$shop->articles()->attach($article_id);
或者这个
$shop->articles()->detach($article_id);
我如何确保它们真正被执行?在第一种情况下,它 returns 无效,但它也会自动保存,所以我无法使用保存功能来检查它。在第二种情况下它 returns int,但它代表什么?
你用 try/catch
和 DB::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()));
}