php - 如果记录存在则 Laravel 更新或如果不存在则创建

标签 php laravel laravel-5

我想更新我的记录(如果存在),但如果不存在则创建新记录。这是我到目前为止:

 MerchantBranch.php
public function token()
{
   return $this->hasOne('App\MerchantBranchToken');
}

MerchantBranchToken.php
public function merchant_branch()
{
   return $this->belongsTo('App\MerchantBranch');
}

$find = MerchantBranchToken::find($id);

    if (!$find) {
        $branch = new MerchantBranchToken(['token' => $token]);
        MerchantBranch::find($id)->token()->save($branch);
    } else {
        $find->token = $token;
        $find->save();
    }  

它工作得很好。

但据我所知,Laravel 的 Eloquent 模型非常强大。
我可以缩短它吗?还是我已经做对了?

我试过使用“updateOrCreate”方法,但我的外键“merchant_branch_id”需要可填充。

最佳答案

Laravel 提供方法 updateOrCreate为了这个目的

  • 如果有从奥克兰飞往圣地亚哥的航类,请将价格设置为 99 美元。
  • 如果不存在匹配的模型,则创建一个。

  • $flight = App\Flight::updateOrCreate(
        ['departure' => 'Oakland', 'destination' => 'San Diego'],
        ['price' => 99]
    );
    

    关于php - 如果记录存在则 Laravel 更新或如果不存在则创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139076/

    相关文章:

    php - 为什么这个循环会中途放弃?

    php - Laravel 唯一验证在更新时失败

    PHP Laravel : How to Avoid duplicate data while importing xl/csv into mysql?

    php - 在数据库中正确输入复选框值

    php - 打印指定行 mysql & PHP

    php - 如何在 Laravel Excel maatwebsite 上导入时获取真实数字?

    laravel - 使用 Laravel 填充生产中的表

    laravel - 如何将 php-cs-fixer 与 vim 一起用于 laravel?

    php - Laravel 控制台命令 - 请求非必需(可选)输入

    php - mysqli 中的 $GLOBALS ["___mysqli_ston"] 是什么