Eloquent

时间:2015-11-30 11:32:44

标签: eloquent laravel-5.1

我需要在几个不同的地方使用Photo,并且无法弄清楚什么是最好的方法。

所以基本上,网站上有一个图库页面,显示了一堆Photos。还有一个投资组合页面,每个项目都有很多Photos。还有一个博客部分,每个博客都有很多Photos

这些照片的常见之处在于它们有image_urlcaption

ProjectBlog是Eloquent模型,Photo模型是多态模型。

ProjectBlog有:

public function photos()
{
    return $this->morphMany('App\Photo', 'imageable');
}

Photo模型有:

public function imageable()
{
    return $this->morphTo();
}

这个位工作正常。但我的问题是我想将这个Photo模型附加到图库中。我想我的两个选择是:

  1. 创建一个Gallery模型,该模型只有一个条目,因为图库只是一个页面。该模型将具有与上述相同的photos()方法。
  2. 加载图库页面时,请检索imageable_idimageable_type设置为null的所有照片。 (这意味着不属于ProjectBlog的照片。
  3. 但我认为这是一种我看不到的另一种更好的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为你所拥有的两种方法都是大多数人会这样做的。您可以为Photo创建一个新的查询范围,以便轻松返回未附加项目或博客的范围。这就是我要做的。