我已经建立了一个像这样的表结构:
+--------+
| 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应该为集合中的第一个项目输出属于用户的单一颜色。
这种情况甚至可能吗?