具有Eloquent

时间:2017-08-07 09:56:41

标签: mysql laravel eloquent

我已经建立了一个像这样的表结构:

+--------+
| colors |
+--------+
| id     |
| hex    |
+--------+

+--------+
| items  |
+--------+
| id     |
| name   | 
+--------+

+------------+
| color_item |
+------------+
| color_id   |
| item_id    |
| user_id    |
+------------+

正如您可以看到数据透视表中的user_id列。基本上就是这样。用户可以拥有多个项目,并且这些项目具有设置的颜色,该颜色是按用户设置的。因此,一个用户X具有颜色为1的项目A,而用户Z可以具有颜色为2的项目A,但是用户Y也可以具有颜色为1的项目A,依此类推。

我已经在我的Laravel应用程序中建立了关系,这意味着如果我使用

Item::find(1)->colors()->get()

我可以获得该项目的所有颜色。但我需要指定一个 where 不仅在我得到的实际项目上,而且在关系上,所以在那里我只得到当前用户的颜色。像

这样的东西
$items = Item::where('other_where_clause')->get();
dd($items[0]->colors->whereInPivot('user_id', '=', Auth::user()->id));
然后,

dd应该为集合中的第一个项目输出属于用户的单一颜色。

这种情况甚至可能吗?

0 个答案:

没有答案