مفهوم Route Prefixes در لاراول، متد Prefixed یکی از متدهای مفید لاراول می باشد که با کمک آن می توانیم روت ها یا مسیرها رو گروه بندی کنیم.
به صورت پیشفرض در زمان تعریف روت ها ما هر روت رو به شکل مستقل تعریف می کنیم. مثلا برای یک بلاگ که پردازش های CRUD در آن اتفاق می افتد برای هر پردازش روت مستقلی ایجاد می شود.
اما در لاراول متدی وجود دارد که با کمک آن می توانیک یک گروه از روت ها رو ایجاد کنیم.
متد Prefix در لاراول
با استفاده از متد “prefix” می تونیم روت هایی که مربوط به یک آدرس مشخص هستند و تنها پردازش آنها بر اساس پارامترهای ارسالی متفاوت است را گروه بندی کنیم.
فرض کنید منن یک کنترلر کامل (با تمام متدها) با استفاده از دستور زیر زیر ایجاد کردم:
php artisan make:controller PostController –resource
حالا برای اینکه متدهای ایجاد شده در کنترلر رو آدرس دهی کنم وارد فایل web.php در پوشه routes میشم و کدهای زیر رو می نویسم:
Route::prefix('/blog')->group(function () {
Route::get('/', [PostController::class, 'index'])->name('blog.index');
Route::get('/{id}', [PostController::class, 'show'])->name('blog.show');
Route::get('/create', [PostController::class, 'create'])->name('blog.create');
Route::post('/', [PostController::class, 'store'])->name('blog.store');
Route::get('/edit/{id}', [PostController::class, 'edit'])->name('blog.edit');
Route::patch('/{id}', [PostController::class, 'update'])->name('blog.update');
Route::delete('/{id}', [PostController::class, 'destroy'])->name('blog.destroy');
});
در اینجا تمامیه روت های مربوط به پردازش های حالت blog رو با استفاده از متد “prefix” در یک گروه قرار دادیم.
این نوع گروه بندی خوانایی کدینگ مارو به شدت افزایش میده و مدیریت آنها رو هم آسان تر می کند.
نکته اینکه ما نام روت اصلی رو تنها یکبار و در خود متد prefix تعریف می کنیم، روت های موجود در گروه به صورت اتوماتیک در زمان فراخوانی آنها را پیشوند خود قرار می دهند.
کدینگ و مسیردهی در کنترلر:
جمع بندی
در این مقاله کوتاه سعی کردم با مثال، مفهوم Route Prefixes و نحوه گروه بندی روت ها با استفاده از متد “prefix” رو توضیح بدم. امیدوارم این مطلب براتون مفید واقع شده باشه.
لطفا اگر نظر و پیشنهادی در خصوص مطالب و پیشبرد آنها دارید خوشحال میشم در قسمت دیدگاه ها مطرح بفرمایید.