【发布时间】:2020-09-19 13:57:48
【问题描述】:
我不确定 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 插入到 tasks_assigned_too_groups 表中?
【问题讨论】:
-
您在数据透视表中使用
group_name属性作为外键是否有任何具体原因?我建议不要这样做。但无论如何,假设您已正确设置所有键和关系,只需调用attach($keys)并使用$keys作为您要分配的外键的数组/集合,它应该可以正常工作。 -
@D.Petrov,这成功插入了 group_name 但没有插入 task_id?
标签: database laravel eloquent relationship