首页 > 解决方案 > 如何进行查询以使用 Laravel 5 中的数据透视表和另一个表进行过滤?

问题描述

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

我正在建立一个带有相册的插图网站。插图可以上传到相册。

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

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

我还有一个单独的表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

解决方案


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

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

推荐阅读