首页 > 解决方案 > 如何在 updateOrCreate 函数中查找记录是否已创建或更新?

问题描述

我有一个简单的邮寄表格。记录通过功能保存到数据库中updateOrCreate

我有以下要存储的记录,

  1. 用户身份
  2. product_id
  3. 审查
  4. 评分

提交表单后,user_id用于product_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']]);
}

是否有任何内置方法来查找创建的新记录或更新的现有记录?

任何形式的建议表示赞赏。

标签: phplaraveleloquent

解决方案


您需要确定模型或给定属性是否已被修改。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
}

希望这对您有所帮助。


推荐阅读