ببینید
یه جدول users داریم
id:increment
name:string
یه جدول roles
id:increment
name:string
جدول واسط role_user
role_id:increment
user_id:increment
هر کاربر میتونه چند نقش داشته باشه
و هر نقش هم میتونه متعلق به چند کاربر باشه ManyToMany
توی مدل user
function roles(){
return $this->belongsToMany('App\roles');
}
و توی کنترلر
$roles_id = [1,5];
$Get = Users::whereHas('roles', function ($query) use ($roles_id){
$query->whereIn('role_id', $roles_id);
});
این کد به من کاربرانی که رول 1 یا 5 دارن را میده . اما من کاربرای را میخوام که فقط رول 1 و 5 دارند.
مثلا کاربر A رول 1,2,3 داره
کاربر B رول 1,3,5,6 داره
کاربر C رول 5,7
کاربر D رول 6,7
با دستور بالا کاربرانی که برمیگردونه A,B,C هستند .
میخوام کدی باشه که فقط کاربر B را بگیره . اونی که هر دوتا رول داره .