شرح صفوف ومحتوى الفقرة
يتضمن نموذج User سمة التفويض التي تمنحك دالتي can و cannot مباشرة على كائن المستخدم. مرر نسخة السجل مثل $user->can('update', $post) لفحص صلاحيات التعديل والحذف، أو مرر اسم الكلاس Post::class عند فحص صلاحية إنشاء سجل جديد.
- فحص سجل قائم ($user->can Instance): يستدعي دالة update في سياسة المقال ويمرر لها السجل.
- فحص إنشاء جديد (Post::class Target): نمرر اسم الكلاس النصي لعدم وجود كائن مقال منشأ بعد.
- التكامل مع البوابة (Gate::authorize): تعمل دالة Gate::authorize مع السياسات أيضاً وتطلق 403 عند الرفض.
PHP
if ($request->user()->cannot('create', Post::class)) {
abort(403);
}
Gate::authorize('update', $post);