مارک پلاس

تکنولوژی نوین اینترنتی

استفاده از Resource Controllers در لاراول

دسته‌بندی‌ها

استفاده از Resource Controllers در لاراول

استفاده از Resource Controllers در لاراول


📌 مقدمه

یکی از قابلیت‌های قدرتمند فریم‌ورک Laravel، وجود Resource Controllerهاست که به توسعه‌دهنده این امکان را می‌دهد تا با حداقل کد، عملیات CRUD را به صورت استاندارد و ساخت‌یافته پیاده‌سازی کند.


🚀 Resource Controller چیست؟

Resource Controller نوعی کنترلر در لاراول است که به طور خودکار تمام مسیرهای CRUD را برای یک منبع (مانند Post، Product، User و...) ایجاد می‌کند. این مسیرها شامل موارد زیر هستند:

متد کنترلرمتد HTTPمسیرتوضیحات
index()GET/resourceنمایش لیست منابع
create()GET/resource/createنمایش فرم ایجاد منبع جدید
store()POST/resourceذخیره منبع جدید
show($id)GET/resource/{id}نمایش یک منبع خاص
edit($id)GET/resource/{id}/editنمایش فرم ویرایش منبع
update($id)PUT/PATCH/resource/{id}بروزرسانی منبع خاص
destroy($id)DELETE/resource/{id}حذف منبع خاص

🧱 ساخت یک Resource Controller

bash
php artisan make:controller PostController --resource

این دستور یک کنترلر به نام PostController می‌سازد که دارای تمامی متدهای فوق است.


🛣️ تعریف مسیر (Route)

در فایل routes/web.php کافیست این خط را اضافه کنید:

php
Route::resource('posts', PostController::class);

با همین یک خط، تمام مسیرهای مربوط به عملیات CRUD روی posts ساخته می‌شود!


🧪 مثال واقعی

مدل Post:

bash
php artisan make:model Post -m

مهاجرت:

php
Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('body'); $table->timestamps(); });

کنترلر (قسمتی از PostController):

php
public function store(Request $request) { $request->validate([ 'title' => 'required|string|max:255', 'body' => 'required|string', ]); Post::create($request->only('title', 'body')); return redirect()->route('posts.index')->with('success', 'پست با موفقیت ایجاد شد!'); }

🧩 سفارشی‌سازی نام Routeها

اگر بخوای مثلاً فقط بعضی از متدها رو استفاده کنی:

php
Route::resource('posts', PostController::class)->only(['index', 'show']);

یا همه بجز بعضی‌ها:

php
Route::resource('posts', PostController::class)->except(['destroy']);

🖼️ استفاده از آیکن در صفحات Blade (نمونه)

blade
<a href="{{ route('posts.create') }}" class="btn btn-primary"> <i class="fas fa-plus"></i> ایجاد پست جدید </a>

✅ جمع‌بندی

Resource Controllerها در لاراول باعث نظم، کاهش کدهای تکراری و توسعه سریع‌تر اپلیکیشن می‌شوند. با استفاده از آن‌ها، تمام مسیرها و ساختار کنترلر به صورت استاندارد ایجاد شده و کار با منابع بسیار ساده‌تر خواهد شد.

محتوای مرتبط

پست‌های مرتبط