
آموزش Routing در لاراول پارت 3 - Route Group ها
در لاراول، وقتی تعداد روتها زیاد میشود، مدیریت و سازماندهی آنها ممکن است دشوار شود. یکی از امکانات بسیار کاربردی لاراول برای ساماندهی روتها، Route Group ها هستند. با استفاده از Route Group میتوانیم چندین روت را زیر یک سری تنظیمات مشترک قرار دهیم، بهجای اینکه هر بار به صورت تکی تنظیمات را روی هر روت اعمال کنیم.
Route Group ها در لاراول
بعضی وقت ها یک سری روت داریم که یک سری چیز های مشترک بین اونها هست، مثل اسم اولش، کنترلر، میدلور و... . در اینجا لاراول یک امکان به ما میده که به راحتی بیایم از امکان گروه روت ها (Route Groups) استفاده کنیم. این نوع روت ها به ما این امکان میده که برای روت های مشترک ما یک سری فیلتر ها اعمال کنیم و نیاز نباشه برای هر روز اختصاصی این کار انجام بدیم.
میدلور ها در Route Group
شما میتونید با استفاده از روت گروپ ها یک سری میدلور برای روت های مشترک تعریف کنید:
Route::middleware(['first', 'second'])->group(function () {
Route::get('/', function () {
// Uses first & second middleware...
});
Route::get('/user/profile', function () {
// Uses first & second middleware...
});
});
در اینجا ما برای 2 تا از روت های خودمون میدلور قرار دادیم بدون نیاز به اینکه برای هر کدوم دستی تعیین کنیم.
کنترلر ها در Route Group
اگه ما چندین روت داشته باشیم که از یک کنترلر استفاده میکنند، میتونیم به راحتی با استفاده از روت گروپ ها کنترلر هاشون رو تعیین کنیم:
use AppHttpControllersOrderController;
Route::controller(OrderController::class)->group(function () {
Route::get('/orders/{id}', 'show');
Route::post('/orders', 'store');
});
Subdomain Routing
در لاراول یک امکانی هست که ما میتونیم بر اساس ساب دامین هامون بیایم روت گروپ تعریف کنیم:
Route::domain('{account}.example.com')->group(function () {
Route::get('/user/{id}', function (string $account, string $id) {
// ...
});
});
در این مثال میبینید که بر اساس اکانت هر کاربر یک ساب دامین داریم که یک روت تعریف شده براش.
Route Prefixes
اگه چندین روت داریم که با استفاده از یک یا چندین کلمه مشترک شروع میشه، میتونیم از متد "()prefix
" استفاده کنیم:
Route::prefix('admin')->group(function () {
Route::get('/users', function () {
// Matches The "/admin/users" URL
});
});
Route Name Prefixes
همینطور اگه یک سری روت داریم که نام های اونها مشترک هستند، میتونیم از متد "name()
" استفاده کنیم:
Route::name('admin.')->group(function () {
Route::get('/users', function () {
// Route assigned name "admin.users"...
})->name('users');
});
لینک مستندات لاراول: https://laravel.com/docs/routing#route-groups
0 نظر