多表的雄辩关系

Nis*_*sar 1 laravel eloquent laravel-5 laravel-5.4

我在 laravel5.4 工作。我创建了四个表作为票证用户公司。在这里,我在票证表中存储了用户 ID。并在用户表中存储公司ID

在这里,我想用该用户的公司名称显示票证的用户名。

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

门票型号:

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

这里requester_id是创建票证的人

用户模型:

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

公司型号:

public function Users()
{
    return $this->hasOne('App\Users');
}
Run Code Online (Sandbox Code Playgroud)

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

Ticket::with('requesters')->orderBy('subject','asc')->paginate(10);
Run Code Online (Sandbox Code Playgroud)

现在,我想获取公司信息或request_id那么我应该在此查询中进行哪些更改以获取公司信息以及票证和用户?

Mar*_*łek 5

如果你想 Eager 加载多个关系,你可以with像这样将它们全部放在一个中:

Ticket::with('requesters','requesters.company')->orderBy('subject','asc')->paginate(10);
Run Code Online (Sandbox Code Playgroud)

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

Ticket::with('requesters.company')->orderBy('subject','asc')->paginate(10);
Run Code Online (Sandbox Code Playgroud)