اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر (معدل)

تحديث 

تحقيقا لنفس الغرض يمكنك جلب الأذونات الخاصة بمستخدم ما عن طريق إستعمال الدالة allPermissions على هذا النحو : 

<?php 

dd($user->allPermissions());

سيتم إعادة مجموعة Illuminate\Database\Eloquent\Collection بجميع الأذونات المتعلقة بمستخدم ما , و يمكنك تصفية المجموعات بحسب دور Role معين .

تم التعديل في بواسطة Adnane Kadri
تحديث في طرح الإجابة
  • 0
نشر
بتاريخ 4 دقائق مضت قال Adnane Kadri:

نعم يمكنك ذلك عن طريق إستعمال الدالة allPermissions على هذا النحو : 


<?php 

dd($user->allPermissions());

سيتم إعادة مجموعة Illuminate\Database\Eloquent\Collection بجميع الأذونات المتعلقة بمستخدم ما .

أعلم هذه الفانكشن ولكن هل هذه الفانكشك ستعيد لي الpermissions الخاصة بrole معينة أم ستعديل الpermission الخاصة بمستخدم معين!!!

أنا أريد الpermissions الخاصة بrole مثلا تسمى admin ما هي الpermissions التي يسطتيع القيام بها الrole admin?

  • 0
نشر

بالطبع بإمكانك ذلك لأنه يوجد علاقة بين النموذج Role و النموذج Permission فمثلاً إذا كان لديك:

$admin = Role::where('name', 'admin')->first();

يُمكنك الحصول على الصلاحيات المُتاحة لهذا الدور عن طريق العلاقة permissions:

$admin = Role::where('name', 'admin')->first();

$adminPermissions = $admin->permissions;

dd($adminPermissions);

و بما أنه توجد علاقة فيُمكنك عمل أي شيء تريده مثلاً إذا أردت جلب كل الأدوار و تحميل الصلاحيات بشكل حثيث يُمكنك ذلك من خلال:

$roles = Role::whereRoleNot(['super_admin', 'admin', 'user'])
            ->whenSearch(\request('search'))
            ->with(['permissions'])
            ->withCount('users')
            ->paginate(5);

و في صفحة العرض و أنت تقوم بعرض الأدوار يُمكنك عمل حلقة لصلاحيات الدور:

@foreach($roles as $role)

...

  @foreach($role->permissions as $permission)
  	...

  @endforeach

@endforeach

 

  • 1
نشر
بتاريخ 3 دقائق مضت قال محمود رضا موسى:

أنا أريد الpermissions الخاصة بrole مثلا تسمى admin ما هي الpermissions التي يسطتيع القيام بها الrole admin?

يمكنك معاملة Role كأي Laravel Class ثان , و ليكن في العلم أنه توجد علاقة one To Many بين الدور \App\Models\Role::class و الأذونات \App\Models\Permission::class . يمكنك الوصول إلى الأذونات الخاصة بدور محدد عن طريق : 

<?php 

Role::where('name', 'admin')->first()->permissions;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...