Laravel数据透视表插入数组

问题描述 投票:0回答:1

我不确定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表中?

database laravel eloquent relationship
1个回答
0
投票

尝试更改此设置

 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

因为这是ManyToMany Relationship,并且intermediary(pivot)表需要具有两个连接表的外键。

[Task模型

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

Group模型

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

这里是更多信息的文档。laravel.com

© www.soinside.com 2019 - 2024. All rights reserved.