我试图在Laravel的Eloquent ORM中实现以下关系。
- 全局标签存储在标签模型中(例如CSS, HTML)
- 用户可以选择多个标签作为他们的"收藏夹"
- 视频可以有很多标签(例如CSS, HTML)
从上面来看,我希望能够显示用户最喜欢的视频,基于与用户选择的标签相关的视频标签。
我希望能够根据用户选择的标签在列表中显示这些视频。我不确定是否应该使用多态关系。我已经设置了这些,但目前我必须循环遍历标签,做以下事情:
@foreach(Auth::user()->tags()->with('videos')->get() as $tag)
@foreach($tag->videos as $video)
{{ $video->name }}
@endforeach
@endforeach
然而我希望能够做到以下几点:
@foreach(Auth::user()->favouriteVideos())
{{ $video->name }}
@endforeach
请记住,上面的例子只是简单的测试,显然我将在我的控制器中进行关系收集。
也许我走错了路,但我相信这是可以实现的。
您可能已经找到了解决方案,但是对于其他遇到这种情况的人:尝试使用查询范围。