محمود موسى2 نشر 9 مايو 2021 أرسل تقرير نشر 9 مايو 2021 السلام عليكم، هل يمكن جلب جميع الpermissions الخاصة بrole معينة بإستخدام laratrust؟ لا أريد إستخدام DB فهل يمكن جلبها عبر method موجودة أساساً في laratrust آخر إصدار؟ 1 اقتباس
0 سمير عبود نشر 9 مايو 2021 أرسل تقرير نشر 9 مايو 2021 بالطبع بإمكانك ذلك لأنه يوجد علاقة بين النموذج 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 اقتباس
1 Adnane Kadri نشر 9 مايو 2021 أرسل تقرير نشر 9 مايو 2021 بتاريخ 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; 1 اقتباس
0 Adnane Kadri نشر 9 مايو 2021 أرسل تقرير نشر 9 مايو 2021 (معدل) تحديث تحقيقا لنفس الغرض يمكنك جلب الأذونات الخاصة بمستخدم ما عن طريق إستعمال الدالة allPermissions على هذا النحو : <?php dd($user->allPermissions()); سيتم إعادة مجموعة Illuminate\Database\Eloquent\Collection بجميع الأذونات المتعلقة بمستخدم ما , و يمكنك تصفية المجموعات بحسب دور Role معين . تم التعديل في 9 مايو 2021 بواسطة Adnane Kadri تحديث في طرح الإجابة 1 اقتباس
0 محمود موسى2 نشر 9 مايو 2021 الكاتب أرسل تقرير نشر 9 مايو 2021 بتاريخ 4 دقائق مضت قال Adnane Kadri: نعم يمكنك ذلك عن طريق إستعمال الدالة allPermissions على هذا النحو : <?php dd($user->allPermissions()); سيتم إعادة مجموعة Illuminate\Database\Eloquent\Collection بجميع الأذونات المتعلقة بمستخدم ما . أعلم هذه الفانكشن ولكن هل هذه الفانكشك ستعيد لي الpermissions الخاصة بrole معينة أم ستعديل الpermission الخاصة بمستخدم معين!!! أنا أريد الpermissions الخاصة بrole مثلا تسمى admin ما هي الpermissions التي يسطتيع القيام بها الrole admin? اقتباس
السؤال
محمود موسى2
السلام عليكم،
هل يمكن جلب جميع الpermissions الخاصة بrole معينة بإستخدام laratrust؟
لا أريد إستخدام DB فهل يمكن جلبها عبر method موجودة أساساً في laratrust آخر إصدار؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.