質問編集履歴
1
問題の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,3 +61,49 @@
|
|
61
61
|
```
|
62
62
|
|
63
63
|
このwhere内でなんとか検索できるものなのか、そもそもそういう検索方法はないのでしょうか?
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
---
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
検索方法が分かりました。
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
$users = Employee::whereHas('roles', function ($query) {
|
78
|
+
|
79
|
+
$query->whereIn('role_id', [10,11,12]);
|
80
|
+
|
81
|
+
})
|
82
|
+
|
83
|
+
->get();
|
84
|
+
|
85
|
+
```
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
このようにして取ることが出来ましたが、role_idが10,11,12のもだけを取得が出来ません。
|
90
|
+
|
91
|
+
上記の例だと、10,11,12のどれかのroleを持っているユーザであれば取得可能です。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
whereInの代わりに、whereを使うと、変な挙動となります。
|
96
|
+
|
97
|
+
例えば、あるユーザのロールが10,11で、
|
98
|
+
|
99
|
+
検索条件には、10,11,12としている場合ヒットします。
|
100
|
+
|
101
|
+
また、あるユーザのロールが11,12だった場合にはヒットしなくなります。
|
102
|
+
|
103
|
+
どうやらロールの先頭から評価していっているようです。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
どうすれば、ロールを10,11,12を持つユーザを取得できるのでしょうか?
|
108
|
+
|
109
|
+
完全一致の場合のみ取得したいです。
|