[英]Laravel updating multiple related models
我正在嘗試一次更新多個模型,到目前為止我沒有嘗試過任何 function,但如果沒有辦法,我不會這樣做。 例如,我有 model 產品,關系很少,里面有另一個關系。 我得到它是這樣的:
Products::where('id', $id)->with('category', 'info.country', 'images', 'packages.package.info.country')->firstOrFail()
那么有什么方法可以一次更新 function 嗎? 例如
Products::where('id', $id)->with('category', 'info.country', 'images', 'packages.package.info.country')->firstOrCreate($request);
那可能嗎?
您無法使用單個語句更新多個模型,因為您無法在一個 SQL 語句中更新多個表。 但是,您可以使用事務來確保以原子方式處理所有語句。
DB::beginTransaction();
try {
$product = Product::find($id);
$product->category()->update([
'name' => 'Category 1',
]);
// rest of the statements
DB::commit();
// all good
} catch (\Exception $e) {
DB::rollback();
// something went wrong
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.