我有主题标签,用户可以订阅它们。这是我为订阅做的事情:
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
或类似的东西。现在我对这些关系感到有些困惑。我非常喜欢绕过这个输出创建额外的桌子,我觉得我可以在没有额外桌子的情况下完成它
表格如下:user
,hashtag
,subscription
型号:Hashtag
,Subscription
,User
答案 0 :(得分:1)
您需要先改变您的人际关系,因为据我了解,一个Subscription
模型与One-To-One
和User
的关系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