3 相互之间的关系进行订阅

3 relationships within each others for subscription

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

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

并且在订阅模型中也有用户关系:

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

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

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

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

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

我的想法是,laravel 在这里期待一种关系 table,称为 hashtag_subscription 或类似的东西。现在我对这些关系有点困惑。我非常喜欢通过创建额外的 table 来解决这个问题,我觉得我可以在没有额外的 table.
的情况下完成它
表格如下:userhashtagsubscription
型号:HashtagSubscriptionUser

你需要先改变你的关系,因为据我了解,一个 Subscription 模型与 UserHashtag 都有 One-To-One 关系:

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