تخطَّ إلى المحتوى

make:policy

توليد سياسة تفويض make:policy

make:policy يولّد صنف سياسة (Policy) في app/Policies، لتجميع منطق التفويض الخاص بنموذج واحد (من يقدر يعدّل/يحذف/يشاهد) في مكان واحد منظّم.

كل تابع بالسياسة يقابل إجراءً معيّنًا (view, create, update, delete...) ويُرجع true أو false حسب صلاحية المستخدم. عند ربط السياسة بالنموذج يمكن استدعاؤها بسهولة عبر $this->authorize() بالمتحكّم أو @can بقوالب Blade، بدل تكرار شروط if متناثرة.

الصياغة

php artisan make:policy NamePolicy [--model=Name]

📄 مثال

php artisan make:policy PostPolicy --model=Post

# داخل app/Policies/PostPolicy.php
public function update(User $user, Post $post): bool
{
    return $user->id === $post->user_id;
}

# الاستخدام بالمتحكّم
public function update(Request $request, Post $post)
{
    $this->authorize('update', $post);
    // ...
}

أهم الخيارات

الخيارالوظيفة
--model=Nameيولّد توابع جاهزة (view, create, update, delete...) مرتبطة بذلك النموذج

💡 نصائح عملية

  • استخدم @can('update', $post) داخل Blade لإخفاء زر التعديل عن مستخدم لا يملك الصلاحية

⚠️ أخطاء شائعة

  • نسيان تسجيل السياسة إن لم يكتشفها Laravel تلقائيًا من اسم النموذج المطابق

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار LARAVEL الكامل بالعربي.