TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #62 682
فصل دو - Controllers

بخش اول - ایجاد و استفاده از کنترلرها


کنترلرها (Controllers) یکی از اجزای اصلی معماری MVC (Model-View-Controller) هستند. کنترلرها وظیفه دارند درخواست‌های ورودی را مدیریت کرده و پاسخ‌های مناسب را به سمت کاربر ارسال کنند.

تعریف کنترلرها:

کنترلرها در لاراول فایل‌هایی هستند که در پوشه app/Http/Controllers قرار می‌گیرند و شامل کلاس‌هایی هستند که مسئولیت کنترل جریان درخواست‌ها و پاسخ‌ها را بر عهده دارند. به طور کلی، کنترلرها به منظور جداسازی منطق تجاری (Business Logic) از منطق نمایش (Presentation Logic) استفاده می‌شوند.

ایجاد کنترلر:
برای ایجاد یک کنترلر در لاراول، می‌توانید از کامند Artisan استفاده کنید. به عنوان مثال:
php artisan make:controller UserController


این دستور یک کنترلر جدید به نام UserController در پوشه app/Http/Controllers ایجاد می‌کند.

انواع کنترلرها:

لاراول چندین نوع کنترلر را پشتیبانی می‌کند:

1- کنترلرهای پایه (Plain Controllers): کنترلرهای ساده‌ای که شامل متدهای مختلف برای مدیریت درخواست‌ها هستند.

2- کنترلرهای منبع (Resource Controllers): کنترلرهایی که برای عملیات CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) بهینه شده‌اند. می‌توانید با استفاده از دستور زیر یک کنترلر منبع ایجاد کنید:
php artisan make:controller UserController --resource


این کنترلر شامل 7 متد پیشفرض است:
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
public function index()
{
// show users list
}

public function create()
{
// show create form
}

public function store(Request $request)
{
// store user data
}

public function show($id)
{
// show user data
}

public function edit($id)
{
// show edit form
}

public function update(Request $request, $id)
{
// update user data
}

public function destroy($id)
{
// delete user
}
}


3- کنترلرهای قابل توزیع (Singleton Controllers): کنترلرهایی که تنها یک نمونه از آن‌ها در طول عمر درخواست ایجاد می‌شود.
php artisan make:controller SingletonController --invokable


نمونه کنترلر برای انجام یک عملیات:
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SingletonController extends Controller
{
public function __invoke()
{
//
}
}


مسیر دهی کنترلرها در روتینگ

برای اتصال یک route به کنترلر روش های متنوعی وجود دارد که در ادامه بررسی خواهیم کرد:
1-
Route::get("/users", "app\Http\Controllers\UserController@index");


در مثال بالا پارامتر دوم به متد index از کنترلر UserController اشاره دارد.
ابتدا نام کامل کنترلر سپس @ و بعد نام متد.

2-
use app\Http\Controllers\UserController;
Route::get("/users", [UserController::class, 'index']);


روش بالا یک روش دیگر برای فراخوانی یک متد از کنترلر است، به این صورت که در یک آرایه، اندیس صفر برابر کلاس کنترلر و اندیس یک برابر نام متد.

برای فراخوانی کنترلر های resource میتوانید از متد دیگری از فساد Route استفاده کنید.
Route::resource('users', UserController::class);


این متد به صورت خودکار 7 متد کنترلر را مسیردهی می کند.

همچنین متد دیگری از فساد Route برای کنترلر ها در دسترس است:
Route::controller(UserController::class)->group(function(){
Route::get("/users", 'index');
});


در روش بالا یک گروه برای یک کنترلر ایجاد می کنید و پس از آن تنها نام متد کنترلر را به عنوان اکشن وارد می کنید.

🔖 #Laravel, #PHP, #لاراول, #فصل_۲

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 2
  • 👍 2
  • 🔥 2
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →