嵌套关系,例如来自一个表的$ member-> assigner-> name

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

我试图在表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: ??)

我的目标是显示谁在任务中分配了每个成员,但是我无法完成任务。

laravel relationship
1个回答
0
投票

我最终解决了它。

现在TaskModel hasMany分配,TaskAssign有成员。这样我用这种方式调用它们:

{{ $task->assign->member->name }}
© www.soinside.com 2019 - 2024. All rights reserved.