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 الكامل بالعربي.