首页 > 解决方案 > Laravel 删除关系并以一种方式创建新关系?

问题描述

大家好,是否可以以一种方式执行以下代码?

    $Project->deadline()->delete();
    $Project->deadline()->create($deadline);

项目模型:

public function deadline()
{
    return $this->hasOne('App\Models\UserProjectDeadline','projects_id','id');
}

标签: laravel

解决方案


似乎没有在一行代码中删除和创建的方法,但 Laravel 提供updateOrCreate(array $attributes, array $values = [])了可用于 hasOne 关系的函数。

$Project->deadline()->updateOrCreate($attributes, $deadline); // To update based on the attributes

或者,如果您想更改/更新没有任何指定属性的所有数据

$Project->deadline()->updateOrCreate([], $deadline); // To update all the data

推荐阅读