我试图在表task_assigns中实现表与user_id(受让人)和assigner_id(assigner)的关系(或类似的东西)。
试过很多关系选项,但无法理解它。
我已经尝试过hasOne()和hasOneThrough(),但它似乎不起作用,因为我确信我没有以正确的方式做到这一点。
目标是显示任务,分配的成员以及为特定任务分配每个成员的人员。
所以Task(model)有很多成员:
public function members()
{
return $this->belongsToMany('App\User', 'task_assigns');
}
所以$ task-> members()显然从task_assigns中读取user_id
表task_assigns有列:
| id | task_id | user_id | assigner_id |
|----|---------|---------|-------------|
| 1 | 12 | 1 | 7 |
| 2 | 12 | 2 | 8 |
| 3 | 10 | 1 | 2 |
这应该意味着 - 每个任务受让人都有一个分配者。
在我看来,我以这种方式列出$ task-> members
@foreach($task->members as $member)
{{ $member->name }} (assigned by: [who?])
@endforeach
在最后的结果我有
Task #12
John (assigned by: ??)
Pete (assigned by: ??)
我的目标是显示谁在任务中分配了每个成员,但是我无法完成任务。
我最终解决了它。
现在TaskModel hasMany分配,TaskAssign有成员。这样我用这种方式调用它们:
{{ $task->assign->member->name }}