Laravel 4-在N:N关系中存在条目的地方获取记录


Laravel 4 - get Records where entry in N:N Relation exists

我在Eloquent查询方面遇到了一些问题。

我有3张桌子:

产品

  • ID
  • 名称

媒体

  • ID
  • 文件

产品_媒体

  • PRODUKT_ID
  • MEDIA_ID

现在我正在尝试从Product表中获取随机结果集,但只记录存在媒体文件。

像这样的东西(不起作用…)

Product::orderByRaw("RAND()")->media()->wherePivot('file', '=!' , '')->take(10)->get();

您应该使用:

Product::orderByRaw("RAND()")->has('media')->take(10)->get();

它将采用所有至少有一个媒体的产品。我假设您只在product_media中存储file != ''

的条目