簡體   English   中英

如何查找是否在updateOrCreate函數中創建或更新記錄?

[英]How to find if record is created or updated in updateOrCreate function?

我有一個簡單的郵寄表格。 記錄通過updateOrCreate函數保存到數據庫中。

我正在跟蹤要存儲的記錄,

  1. 用戶身份
  2. PRODUCT_ID
  3. 評論
  4. 評分

提交表單后,使用user_idproduct_id來檢查記錄是否存在。 如果存在,記錄將被更新,否則將使用該函數創建新記錄。

public function updateOrCreate($input)
{
    return $this->model->updateOrCreate(['product_id'=> $input['product_id'],'user_id'=>$input['user_id']],['rating'=>$input['rating'],'review'=>$input['review']]);
}

是否有內置方法來查找創建的新記錄或更新現有記錄?

任何形式的建議,我們將不勝感激。

您需要確定模型或給定屬性是否已被修改。 wasChanged()方法將有助於識別模型是否已更新。

$model = $this->model->updateOrCreate(['product_id'=> $input['product_id'],'user_id'=>$input['user_id']],['rating'=>$input['rating'],'review'=>$input['review']]);

// It will return true if the record have been modified
$wasChanged = $model->wasChanged();
if ( $wasChanged ) {
    // updated
}
else {
   // created
}

希望這對您有所幫助。

$wasRecentlyCreated模型上有一個名為$wasRecentlyCreated的公共財產。 進行插入時設置。 並且只有在插入相同請求后,它才會為true 不適用於連續的請求。 如果執行了更新,則將為false

請注意,該屬性也僅對於完全相同的模型實例為true 如果使用Product::find($id)重新加載模型,則它將為false 不幸的是,如果您在模型上調用refresh() ,會發生什么呢?

暫無
暫無

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

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