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

make:controller

توليد متحكّم make:controller

make:controller يولّد صنف متحكّم في app/Http/Controllers، مع خيارات لتوليد متحكّم موارد كامل أو متحكّم API بلا صفحات نماذج.

المتحكّم الفارغ العادي مفيد لمنطق بسيط، لكن الأشيع هو توليد متحكّم موارد (Resource Controller) بخيار --resource فيولّد Laravel كل توابع CRUD السبعة جاهزة (index, create, store, show, edit, update, destroy) بدل كتابتها يدويًا.

خيار --api مصمَّم خصيصًا لواجهات API: يستبعد create وedit لأنّهما مخصّصان لعرض نماذج HTML، وهو ما لا تحتاجه واجهة برمجية بلا حالة.

الصياغة

php artisan make:controller NameController [options]

📄 مثال

# متحكّم فارغ
php artisan make:controller PostController

# متحكّم موارد كامل (كل توابع CRUD)
php artisan make:controller PostController --resource

# متحكّم API (بلا create/edit)
php artisan make:controller PostController --api --model=Post

# متحكّم بتابع واحد فقط (__invoke)
php artisan make:controller ShowDashboardController --invokable

أهم الخيارات

الخيارالوظيفة
--resourceيولّد توابع CRUD السبعة الكاملة (لصفحات ويب)
--apiمتحكّم موارد بلا create وedit (لواجهات API)
--invokableمتحكّم بتابع __invoke واحد فقط، لإجراء بسيط لا يحتاج عدّة توابع
--model=Nameيربط المتحكّم بنموذج معيّن (لحقن Route Model Binding تلقائيًا)

💡 نصائح عملية

  • اربط متحكّم الموارد بمسار واحد عبر Route::resource() أو Route::apiResource() بدل تعريف كل مسار يدويًا

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

  • استخدام --resource بدل --api لواجهة API فيبقى create وedit فارغين بلا فائدة

خصائص ذات صلة

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