アンドレアス・ハンター:
私が持っているusers
とuser_positions
テーブル。
Userモデル
public function positions()
{
return $this->hasMany(UserPosition::class);
}
データ例:
ユーザー:
----------------
| id | name |
----------------
| 1 | Alex |
| 2 | Nick |
| 3 | John |
| 4 | Liam |
| 5 | Noah |
| 6 | William |
| 7 | James |
| 8 | Oliver |
| 9 | Benjamin|
| 10 | Elijah |
| 11 | Lucas |
----------------
ユーザー体位
------------------------
| position | user_id |
------------------------
| Developer | 1 |
| Designer | 2 |
| Teacher | 1 |
| Singer | 3 |
| Architect | 3 |
| Accountant | 4 |
| Baker | 2 |
| Actress | 7 |
| Chef | 11 |
| Butcher | 10 |
| Carpenter | 8 |
| Developer | 9 |
| Accountant | 11 |
| Butcher | 8 |
| Singer | 10 |
| Carpenter | 7 |
| Carpenter | 1 |
------------------------
この場合、私はグループ位置の名前でユーザーとは、この結果のように得ることができる方法:
[
Developer => [1, 9],
Designer => [2],
Teacher => [1],
Singer => [3, 10],
Architect => [3],
Accountant => [4, 11],
Baker => [2],
Actress => [7],
Chef => [11],
Butcher => [10, 8],
Carpenter => [8, 7, 1]
]
ダリルE.クラーク:
あなたは、多対多の関係を探しています。あなたが通り、中央のピボットテーブルを使用する場合はLaravelのドキュメント簡単に検索を逆にすることができます。
今、あなたは、ユーザーが多くのポジションを持っていますが、位置は、あなたの二次テーブルに繰り返されて、あなたは、簡単に特定の位置にあるすべてのユーザーを取得するには何の構造を持っていません。
あなたは中間テーブルを使用する場合は、ユーザーを持つことができる位置と位置があなたのグループ化を与え、また、ポジション名を持つデータの繰り返しを減らし、ユーザーを持っています。