در لاراول، Named Routes به شما این امکان را میدهند که به راحتی به مسیرها (routes) دسترسی پیدا کرده و از آنها در کد خود استفاده کنید بدون نیاز به یادآوری URL دقیق مسیرها. به این ترتیب، شما میتوانید مسیرهای خود را با یک نام خاص مشخص کرده و سپس از این نامها برای لینک دادن به مسیرها یا ارجاع به آنها استفاده کنید.
این ویژگی بهخصوص زمانی که ساختار URL تغییر میکند، بسیار مفید است چون شما فقط نام مسیر رو تغییر میدهید و نیازی به تغییر تمامی ارجاعها به URL ندارید.
🚀 تعریف Named Route
برای تعریف یک Named Route، باید هنگام تعریف مسیر (route) در فایل web.php (یا هر فایل route دیگری) از متد name() استفاده کنید.
مثال:
در اینجا، مسیر /profile با نام profile.show مشخص شده است.
⚡ استفاده از Named Routes
1. لینک دادن به Named Route با استفاده از route()
در لاراول میتوانید از تابع route() برای تولید لینکها به Named Routes استفاده کنید. به جای استفاده از URL دقیق، فقط کافیست نام مسیر رو به تابع route() بدید.
مثال:
در اینجا route('profile.show') آدرس مسیر /profile رو تولید میکنه.
2. استفاده از Named Route در Controller
در صورتی که بخواهید در کنترلر از Named Route استفاده کنید، میتوانید از متد route() یا redirect()->route() استفاده کنید.
مثال:
در اینجا، وقتی متد redirectToProfile() فراخوانی بشه، کاربر به مسیر profile.show هدایت میشود.
3. استفاده از پارامترها در Named Route
اگر مسیر شما نیاز به پارامتر داشته باشه، میتوانید این پارامترها رو به تابع route() ارسال کنید.
مثال:
در اینجا، route('user.show', ['id' => 1]) لینک /user/1 رو تولید میکنه.
4. مراجعه به Named Routes در URLهای بازنویسیشده
فرض کنید شما نیاز دارید که URLهای مسیرهای خود را تغییر دهید (مثلاً /profile را به /user-profile تغییر دهید). با استفاده از Named Routes، تنها کاری که باید انجام دهید این است که نام مسیرها رو تغییر بدید و همه ارجاعها بهصورت خودکار تغییر خواهند کرد.
📝 مثال کامل از استفاده از Named Routes
1. تعریف مسیرها:
2. استفاده از Named Routes در Blade:
3. استفاده از Named Routes در Controller:
⚡ مزایای استفاده از Named Routes
-
کاهش وابستگی به URLها: نیازی نیست که همیشه URLها رو به خاطر بسپارید. فقط کافیه نام مسیر رو بدونید.
-
انعطافپذیری بیشتر: اگر ساختار URL تغییر کرد، فقط باید نام مسیر رو تغییر بدید و نیازی به تغییر تمام لینکها یا ارجاعها نیست.
-
خوانایی کد: با استفاده از نامهای معنادار برای مسیرها، کد شما خواناتر و قابل فهمتر میشود.
📋 جمعبندی
-
تعریف Named Route:
Route::get('/profile', [UserController::class, 'showProfile'])->name('profile.show'); -
استفاده از Named Route: از تابع
route('route.name')برای تولید لینک استفاده کنید. -
پارامترها: میتوانید پارامترها رو به راحتی از طریق تابع
route()ارسال کنید. -
مهمترین مزیتها: کاهش وابستگی به URLها و انعطافپذیری بیشتر در مدیریت مسیرها.
Named Routes یکی از بهترین ویژگیهای لاراول برای ساخت سیستمهای بزرگ و مقیاسپذیر است که به شما کمک میکنه تا مدیریت مسیرها راحتتر و قابل نگهداریتر بشه.