私は基本的に次の形式を取るデータベース設計をしています(デモンストレーション目的では実際には必要ないので、多くのフィールドを削除しました)。私は、ユーザーテーブルにピボットテーブルに基づくクエリデータ
users
+----+---------------+-----------------+
| id | name | email |
+----+---------------+-----------------+
| 1 | ProjectA | Something |
+----+---------------+-----------------+
を持っているユーザーは、多くのプロジェクト
projects
+----+---------------+-----------------+-----------------+
| id | name | description | user_id |
+----+---------------+-----------------+-----------------+
| 1 | ProjectA | Something | 1 |
+----+---------------+-----------------+-----------------+
を持つことができますので、それはまっすぐ十分と照会することは非常に簡単です。私ができるログインしたユーザーのためのすべてのプロジェクトが必要な場合
$loggedInUser = Auth::user()->getFirstName() . ' ' . Auth::user()->getLastName();
$loggedInUserId = User::where('userName', '=', $loggedInUser)->first();
$projectss = Project::all()->where('user_id', $loggedInUserId);
これは少しばかげています。私はユーザーグループのピボットテーブルを持っています。それは本質的に、この
users_user_groups
+----+---------------+-----------------+
| id | user_id | group_id |
+----+---------------+-----------------+
| 1 | 1 | 2 |
+----+---------------+-----------------+
私は、ユーザーが私の一部であり、どのようなグループを見つけるしたい場合は、私はその後、USER_GROUPSテーブルに
user_groups
+----+---------------+
| id | group_name |
+----+---------------+
| 1 | Group A |
+----+---------------+
を持って
$userGroups = Auth::user()->getGroups();
を行うことができます私の質問をされていますこの。上記では、どのようにしてユーザーのためにすべてのプロジェクトを手に入れることができるかを示します。今私はグループAと呼ばれるuser_groupがあることを知っています。私が本質的にやってみたいのは、ユーザーがグループAから離れているすべてのプロジェクトを取得することです。したがって、5人のユーザーがプロジェクトを作成してグループAにいる場合、 5つのプロジェクト。
どうすればこのようなことをやりますか?