雄辩的多枢纽表laravel

时间:2019-05-02 20:29:25

标签: laravel eloquent relationship

我创建了3个模型,我需要在表中链接3个模型的链接:

user:
 name
 password
 ...

task:
 ...
 task_status_id

task_status:
 name
 ...

task_user:
 task_id
 user_id

但是在我的实现中,我需要所有用户的任务状态,例如:

task_user:
 task_id
 user_id
 task_status_id

因为其中一个列表用户可以完成任务,但另一个用户

如果有人可以告诉我最佳解决方案,谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在数据透视表中添加其他列。因此,您只需在迁移文件中添加其他列即可。

然后在模型关系中,您需要添加一个附加的函数调用。

return $this->belongsToMany('App\Task')->withPivot('task_status_id');

然后您可以进行设置。

$user->tasks()->attach($task->id, ['task_status_id' => $task_status->id]);

Laravel文档中有更多信息

Many to Many Pivot Update