簡體   English   中英

試圖了解如何制作 UpdateOrCreate

[英]Trying to understand how to make a UpdateOrCreate

我有一個 model ,代碼如下:

    public static function insertSent($itemId, $currentPackId)
    {
        $itemHistory = new ItemHistory([
            'item_id' => $itemId,
            'pack_id' => $currentPackId,
            'status' => self::SENT,
            'returned_by' => Auth::id()
        ]);

        $itemHistory->save();
    }

    public static function insertReturned($itemId, $currentPackId)
    {
        $itemHistory = new ItemHistory([
            'item_id' => $itemId,
            'pack_id' => $currentPackId,
            'status' => self::RETURNED,
            'returned_by' => Auth::id()
        ]);

        $itemHistory->save();
    }

我剛剛添加了 insertSent,我想將 insertReturned 更改為 function,如果它存在則更新記錄或創建它,以便 UpdateOrCreate。

我正在使用 laravel php

您可以很容易地調整您的方法以使用updateOrCreate

public static function insertReturned($itemId, $currentPackId)
{
    ItemHistory::updateOrCreate([
        'item_id' => $itemId,
        'pack_id' => $currentPackId,
    ], [
        'status' => self::RETURNED,
        'returned_by' => Auth::id(),
    ]);        
}

第一個數組是您正在尋找的。 如果找到記錄,則用第二個數組填充並保存。 如果沒有找到記錄,則合並第一個和第二個數組並創建新記錄。

Laravel 6.x 文檔 - Eloquent - 其他創建方法updateOrCreate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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