【问题标题】:How to make a query to filter with a pivot table & another table in Laravel 5?如何进行查询以使用 Laravel 5 中的数据透视表和另一个表进行过滤?
【发布时间】:2018-09-02 09:07:17
【问题描述】:

对不起标题我真的不知道该怎么称呼它。

我正在建立一个包含专辑的插图网站。 插图可以上传到相册。

在照片表中,我有一个已处理的表。 这样我可以检查插图是否经过处理,如果是,则可以搜索,如果没有,则用户必须编辑处理后的插图。

我可以选择特定相册中的照片,但我不知道如何使用属于查看相册的处理后的插图进行过滤。

我还有一个单独的表 album_photos 表。 相册和照片的关系是hasMany和belongsToMany。

这样我选择了所有照片,但没有经过处理或未过滤。

$photos = Photo::whereIn('id', $album -> album_photos() -> pluck('photo_id'))->get();

这样我就选择了对应用户的所有处理过的照片。

$photosNotProcessed = Photo::where('user_id', Auth::user() -> id)->whereNull('processed')->get();

现在我想选择查看相册中未处理的照片。 有什么想法吗?

提前致谢。

【问题讨论】:

  • 分享您的模态以及关系,以便我们帮助您编写查询

标签: laravel-5


【解决方案1】:

我发现您有 3 张桌子照片、相册和一张正在处理通话的桌子! 照片和相册有多对多的关系,照片和处理过的表格也有关系,如果你想选择属于相册的处理过的照片,因此你可以在照片表格中添加一个位置:

  Photo::where('user_id', Auth::user() -> id)->whereNull('processed')->whereIn('id', $album -> album_photos()) -> pluck('photo_id'))->get();;

【讨论】:

  • 非常感谢您的回复。我找到了一个方法。你的方法也不错。我现在在模态中有一个功能。小清洁工
  • 这是我使用的代码。我不知道它是否有效 哈哈 public function processes() { return $this->photos->where('processed',1)->all(); }
猜你喜欢
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
  • 2016-12-28
  • 2021-11-13
  • 1970-01-01
  • 2015-12-28
相关资源
最近更新 更多