簡體   English   中英

Laravel更新多款相關機型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM