订阅中的3个关系

时间:2018-02-24 10:12:19

标签: laravel laravel-5 laravel-5.4 relationship

我有主题标签,用户可以订阅它们。这是我为订阅做的事情:

function hashtag(){
    return $this->belongsToMany('App\Hashtag');
}

订阅模型中也存在用户关系:

function user(){
    return $this->belongsToMany('App\User');
}

user模型有subscribes,它应该为我提供Authed用户订阅的主题标签。这是:

function subscribes(){
    return $this->hasMany('App\Subscription');
}

现在使用此代码,我尝试访问hashtag Auth用户subscribes这里是查看代码:

@foreach(Auth::user()->subscribes->hashtag as $tags)
    {{ $tags->name }}
@endforeach

我认为,laravel希望这里有一个关系表,称为hashtag_subscription或类似的东西。现在我对这些关系感到有些困惑。我非常喜欢绕过这个输出创建额外的桌子,我觉得我可以在没有额外桌子的情况下完成它
表格如下:userhashtagsubscription
型号:HashtagSubscriptionUser

1 个答案:

答案 0 :(得分:1)

您需要先改变您的人际关系,因为据我了解,一个Subscription模型与One-To-OneUser的关系Hashtag

function hashtag() {
    return $this->belongsTo('App\Hashtag');
}

function user() {
    return $this->belongsTo('App\User');
}

然后,您可以遍历用户订阅,并且可以访问初始用户订阅的Hashtag和用户:

@foreach(Auth::user()->subscribes as $subs)
    {{ $subs->user->firstname }}
    {{ $subs->hashtag->name }}
@endforeach