💡 مشاوره

مارک پلاس

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

Routing لاراول

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

Routing لاراول

Routing لاراول


در لاراول، Routing (مسیریابی) نقش ستون فقرات برنامه‌ی وب را دارد. یعنی وقتی کاربر وارد یک آدرس خاص می‌شود، Route مشخص می‌کند که چه کاری انجام شود، چه Controller یا چه Viewی اجرا شود. در این مقاله، به‌صورت کامل و کاربردی با مفهوم Routing در لاراول آشنا می‌شویم.


🛣️ Routing چیست؟

Route در لاراول، واسطه‌ای است بین درخواست HTTP کاربر و پاسخی که باید به او نمایش داده شود.

📂 مسیر فایل‌های مسیریابی:

  • routes/web.php ← مخصوص صفحات وب

  • routes/api.php ← مخصوص APIها


📄 انواع متدهای Route

لاراول برای هر نوع درخواست HTTP، متد مخصوص دارد:

متدتوضیح
get()دریافت اطلاعات
post()ارسال داده (فرم و...)
put()بروزرسانی داده
delete()حذف داده
patch()آپدیت جزئی
any()همه‌ی متدها
match()ترکیب چند متد

✅ مثال ساده از Route GET

php
Route::get('/hello', function () { return 'سلام لاراول!'; });

📂 Route با Controller

php
use App\Http\Controllers\PostController; Route::get('/posts', [PostController::class, 'index']);

📝 Route با ارسال پارامتر

php
Route::get('/user/{id}', function ($id) { return "User ID is $id"; });

✅ با مقدار پیش‌فرض:

php
Route::get('/user/{name?}', function ($name = 'مهمان') { return "سلام $name"; });

✅ با محدودیت نوع:

php
Route::get('/post/{id}', function ($id) { return "Post ID: $id"; })->where('id', '[0-9]+');

🧾 نام‌گذاری Route

php
Route::get('/dashboard', function () { return view('dashboard'); })->name('dashboard'); route('dashboard'); // استفاده در Blade یا Controller

🧠 Route Groups (گروه‌بندی)

برای اعمال تنظیمات مشترک روی چند Route:

php
Route::prefix('admin')->middleware('auth')->group(function () { Route::get('/users', [AdminController::class, 'users']); Route::get('/settings', [AdminController::class, 'settings']); });

🛡️ Route Middleware

php
Route::get('/profile', function () { // فقط کاربران احراز هویت‌شده دسترسی دارند })->middleware('auth');

🔁 Route Resource

برای CRUD کامل در یک خط:

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

این دستور به‌صورت خودکار مسیرهای زیر را می‌سازد:

متدURLاکشنتوضیح
GET/postsindexلیست پست‌ها
GET/posts/createcreateفرم ساخت
POST/postsstoreذخیره
GET/posts/{id}showنمایش یک پست
GET/posts/{id}/editeditفرم ویرایش
PUT/posts/{id}updateبروزرسانی
DELETE/posts/{id}destroyحذف

📌 Route Fallback

برای نمایش صفحه 404 سفارشی:

php
Route::fallback(function () { return response()->view('errors.404', [], 404); });

🧪 تست سریع Route در مرورگر

مثال:

pgsql
http://your-domain.test/user/123

✅ جمع‌بندی

🔹 Routeها در لاراول تعیین می‌کنند که هر درخواست کاربر به کجا هدایت شود.
🔹 می‌توان آن‌ها را با کنترلر، ویو، میدل‌ور، گروه‌بندی و پارامترهای پویا ترکیب کرد.
🔹 Routeهای resource برای پروژه‌های CRUD فوق‌العاده مفیدند.

محتوای مرتبط

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