کنترلرها در لاراول به شما این امکان را میدهند که منطق برنامهتان را از ویوها جدا کرده و ساختار کد شما را مرتبتر و قابل نگهداریتر کنید. کنترلرها وظیفه مدیریت درخواستها، فراخوانی مدلها و بازگرداندن پاسخها (ویوها یا دادهها) را بر عهده دارند.
در اینجا توضیح میدهم که چطور میتوانید کنترلر در لاراول بسازید، از آن استفاده کنید و با آن کار کنید.
🧑💻 کنترلر در لاراول
1. ایجاد کنترلر در لاراول
برای ساخت یک کنترلر در لاراول، میتوانید از دستور artisan استفاده کنید. دو نوع کنترلر اصلی در لاراول وجود دارد: کنترلر ساده و کنترلر منابع.
1.1. ایجاد یک کنترلر ساده
برای ایجاد یک کنترلر ساده، از دستور زیر استفاده میکنید:
این دستور یک فایل کنترلر به نام MyController.php در پوشه app/Http/Controllers ایجاد میکند.
1.2. ایجاد یک کنترلر منابع (Resource Controller)
اگر میخواهید یک کنترلر که عملیات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) را انجام دهد، بسازید، میتوانید از دستور resource استفاده کنید:
این دستور یک کنترلر با تمام متدهای لازم برای عملیات CRUD ایجاد میکند.
2. ساختار کنترلر
در فایل کنترلر، متدهایی برای پاسخ به درخواستهای مختلف میسازید. برای مثال، متدهای index, show, create, store, edit, update, و destroy برای مدیریت عملیات CRUD.
2.1. مثال از کنترلر ساده
2.2. کنترلر منابع
اگر از کنترلر منابع استفاده کنید، لاراول به طور خودکار متدهایی برای عملیات CRUD برای شما ایجاد میکند.
در اینجا:
-
متد
index()برای نمایش تمام پستها است. -
متد
create()برای نمایش فرم ایجاد پست است. -
متد
store()برای ذخیره پست جدید در پایگاه داده است. -
متد
show()برای نمایش یک پست خاص است. -
متد
edit()برای نمایش فرم ویرایش پست است. -
متد
update()برای بهروزرسانی اطلاعات پست است. -
متد
destroy()برای حذف پست است.
3. تعریف روت برای کنترلر
برای استفاده از کنترلرها در لاراول، باید روتهای مربوطه را در فایل routes/web.php تعریف کنید.
3.1. روت برای کنترلر ساده
3.2. روت برای کنترلر منابع
برای یک کنترلر منابع، میتوانید از دستور Route::resource استفاده کنید که به طور خودکار تمام روتهای CRUD را برای شما ایجاد میکند.
این دستور تمام روتهای زیر را ایجاد میکند:
-
GET /posts→index() -
GET /posts/create→create() -
POST /posts→store() -
GET /posts/{id}→show() -
GET /posts/{id}/edit→edit() -
PUT/PATCH /posts/{id}→update() -
DELETE /posts/{id}→destroy()
4. کنترلرهای با استفاده از میانهروها (Middleware)
در لاراول، میتوانید از میانهروها (Middleware) برای انجام عملیات قبل یا بعد از درخواستها استفاده کنید. این میانهروها میتوانند برای بررسی احراز هویت، مجوز دسترسی و موارد دیگر استفاده شوند.
4.1. اعمال میانهرو به کنترلر
در کنترلر میتوانید از میانهروها به صورت زیر استفاده کنید:
در اینجا:
-
میانهرو
authبه تمام متدهای کنترلر اعمال میشود و فقط کاربرانی که وارد سیستم شدهاند میتوانند به متدها دسترسی داشته باشند.
5. ارسال دادهها از کنترلر به ویو
برای ارسال دادهها از کنترلر به ویو، میتوانید از متد view استفاده کنید:
همچنین میتوانید از متد compact برای ارسال متغیرها به ویو استفاده کنید:
💡 جمعبندی
-
کنترلرها در لاراول برای مدیریت درخواستها و منطق برنامه استفاده میشوند.
-
شما میتوانید با استفاده از دستور
php artisan make:controllerیک کنترلر بسازید و سپس متدهای مختلف آن را برای عملیات مختلف (مانند CRUD) تعریف کنید. -
روتها باید به کنترلرها متصل شوند تا درخواستها به متدهای مناسب هدایت شوند.
-
میانهروها به شما این امکان را میدهند که عملیات خاصی را قبل یا بعد از درخواستها انجام دهید.
-
دادهها را میتوانید به راحتی از کنترلر به ویو ارسال کنید.
اگر سوال یا مشکلی دارید، خوشحال میشوم کمک کنم!