Laravel检索非直接相关值轴上的关系

Laravel检索非直接相关值轴上的关系,laravel,pivot-table,Laravel,Pivot Table,我在用户和帖子表上有一个多对多关系,设置了一个透视表,在透视表中,有另一个列位置id链接到位置表 在用户模型中,多对多关系定义为: public function postings() { return $this->belongsToMany('App\Models\Posting', 'posting_user')->withPivot('position_id','contact_type'); } public function users() {

我在用户帖子表上有一个多对多关系,设置了一个透视表,在透视表中,有另一个列位置id链接到位置

用户模型中,多对多关系定义为:

public function postings() {
        return $this->belongsToMany('App\Models\Posting', 'posting_user')->withPivot('position_id','contact_type');
    }
public function users() {
        return $this->belongsToMany(Auth\User::class, 'posting_user')->withPivot('position_id','contact_type');
    }
发布模型中,多对多关系定义为:

public function postings() {
        return $this->belongsToMany('App\Models\Posting', 'posting_user')->withPivot('position_id','contact_type');
    }
public function users() {
        return $this->belongsToMany(Auth\User::class, 'posting_user')->withPivot('position_id','contact_type');
    }
我的数据透视表如下所示:

我访问的数据如下:

$postings = Auth::User()->postings()->get();
现在,我必须在我的刀片上为每个帖子显示职位名称。我的问题是从pivot我只能访问position_id号

$postings->first()->pivot->position_id
但我想做的是:

$postings->first()->pivot->position_id->name
现在,我必须对每个记录进行单独查询,以获得职位名称,这不是一个很好的解决方案。 那么,有没有更好的方法可以使用

public function postings() {
        return $this->belongsToMany('App\Models\Posting', 'posting_user')
            ->withPivot('position_id','contact_type')
            ->using(UserPosting::class);
}
UserPosting.php

class UserPosting extends Illuminate\Database\Eloquent\Relations\Pivot {
    public function position()
    {
        return $this->belongsTo(Position::class);
    }
}
用法

$postings->first()->pivot->position->name

听起来您可能想通过这里的关系建立一个
,而不是
hasManyThrough