Eloquent 多个关系 table

Eloquent relationship for multiple table

我在 laravel5.4 工作。我创建了四个 table 作为 ticketuserscompany。在这里,我在 ticket table 中存储了 users id。并存储 company idusers table.

在这里,我想显示 ticket 的 用户名和 users 公司名称。

在这里,我为它创建了如下所示的关系。

门票型号:

public function requesters(){
    return $this->belongsTo('App\User','requester_id');
}

这里 requester_id 是谁创建 ticket.

用户模型:

public function company()
{
    return $this->belongsTo('App\Models\Admin\Company');
}

公司型号:

public function Users()
{
    return $this->hasOne('App\Users');
}

在这里,我编写了查询以获取如下所示的用户信息。

Ticket::with('requesters')->orderBy('subject','asc')->paginate(10);

现在,我想获取公司信息或 request_id 那么我应该在此查询中做哪些更改才能获取公司信息以及工单和用户?

试试这个,它应该适用于这种情况:

Ticket::with('requesters')
      ->with('requesters.company')
      ->orderBy('subject','asc')->paginate(10);

如果你想急切加载多个关系,你可以将它们全部放在单个 with 中,如下所示:

Ticket::with('requesters','requesters.company')->orderBy('subject','asc')->paginate(10);

但是如果你加载嵌套关系,你可以使用更短的符号 - 你可以省略父关系,所以在这里使用就足够了:

Ticket::with('requesters.company')->orderBy('subject','asc')->paginate(10);