Laravel数据透视表插入数组

时间:2020-06-01 09:28:59

标签: database laravel eloquent relationship

我不确定 tasks_assigned_too_groups 表的关系, 我的数据库如下:

tasks
id | task_name | task_description

groups
id | group_name | user_id

tasks_assigned_too_groups
id | tasks_id | group_name

以您创建任务的形式并将其指定为组,然后按以下所示创建任务:

 public function store() {

        $data = request()->validate([
           'task_title' => '',
           'task_description' => '',
           'start_date' => '',
            'due_date' => '',
            'group_name' => '',
        ]);

// insert in to tasks database table...
        $task = request()->user()->tasks()->create([
            'task_title' => $data['task_title'],
            'task_description' => $data['task_description'],
            'start_date' => $data['start_date'],
            'due_date' => $data['due_date'],
        ]);

// insert into tasks_assigned_too_groups database table...
        $task->setforgroups()->attach($data['group_name']);

        return new TasksResource($task);
    }

$ data ['group_name'] 是一个如下数组:

[
  {
    "group_name": "9x/En3"
  },
  {
    "group_name": "10x/En3"
  }
]

如何将同样已分配的task_id和group_name插入task_assigned_too_groups表中?

1 个答案:

答案 0 :(得分:2)

尝试更改此内容

 tasks
 id | task_name | task_description

 groups
 id | group_name | user_id

 tasks_assigned_too_groups
 id | tasks_id | group_name

对此:

 tasks
 id | task_name | task_description

 groups
 id | group_name | user_id

 tasks_assigned_too_groups
 id | tasks_id | group_id

因为这是多对多关系,并且 intermediary(枢轴)表需要具有两个连接表的外键。

任务模型

public function groups()
{
    return $this->belongsToMany('App\Group');
}

模型

public function tasks()
{
    return $this->belongsToMany('App\Task');
}

此处是有关更多信息的文档。 laravel.com