多轴表laravel雄辩

多轴表laravel雄辩,laravel,eloquent,relationship,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 因为列表用户中的一个可以完成任务,但另一个不能 如果有人能告诉我最好的解决

我创建了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
因为列表用户中的一个可以完成任务,但另一个不能


如果有人能告诉我最好的解决办法,谢谢

您可以在透视表中添加其他列。因此,您只需在迁移文件中添加额外的列

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

return $this->belongsToMany('App\Task')->withPivot('task_status_id');
然后你可以这样设置

$user->tasks()->attach($task->id, ['task_status_id' => $task_status->id]);
在Laravel文档中有更多信息


您可以在透视表中添加其他列。因此,您只需在迁移文件中添加额外的列

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

return $this->belongsToMany('App\Task')->withPivot('task_status_id');
然后你可以这样设置

$user->tasks()->attach($task->id, ['task_status_id' => $task_status->id]);
在Laravel文档中有更多信息


我是否能够使用此字段使用Elount查询数据库?task::users()->with('task_status')或类似的东西?有一个'wherePivot'函数,但我从未使用过它。查看您将调用tasks::users()->wherePivot('task\u status\u id',$task\u status->id)的文档;我是否能够使用eloquent使用此字段查询数据库?task::users()->with('task_status')或类似的东西?有一个'wherePivot'函数,但我从未使用过它。查看您将调用tasks::users()->wherePivot('task\u status\u id',$task\u status->id)的文档;