我需要在几个不同的地方使用Photo
,并且无法弄清楚什么是最好的方法。
所以基本上,网站上有一个图库页面,显示了一堆Photos
。还有一个投资组合页面,每个项目都有很多Photos
。还有一个博客部分,每个博客都有很多Photos
。
这些照片的常见之处在于它们有image_url
和caption
。
Project
和Blog
是Eloquent模型,Photo
模型是多态模型。
Project
和Blog
有:
public function photos()
{
return $this->morphMany('App\Photo', 'imageable');
}
Photo
模型有:
public function imageable()
{
return $this->morphTo();
}
这个位工作正常。但我的问题是我想将这个Photo
模型附加到图库中。我想我的两个选择是:
Gallery
模型,该模型只有一个条目,因为图库只是一个页面。该模型将具有与上述相同的photos()
方法。imageable_id
和imageable_type
设置为null的所有照片。 (这意味着不属于Project
和Blog
的照片。但我认为这是一种我看不到的另一种更好的方法。有什么建议吗?
答案 0 :(得分:0)
我认为你所拥有的两种方法都是大多数人会这样做的。您可以为Photo创建一个新的查询范围,以便轻松返回未附加项目或博客的范围。这就是我要做的。