Именованные роуты
Имя роута — это метка, по которой можно генерировать URL в коде. Вместо того чтобы хардкодить /posts/5 в шаблонах, ты пишешь route('posts.show', 5). Если URL изменится — правишь в одном месте.
Задание имени
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
Генерация URL
$url = route('dashboard'); // /dashboard
С параметрами:
Route::get('/posts/{post}', fn ($post) => $post)->name('posts.show');
$url = route('posts.show', ['post' => 5]); // /posts/5
$url = route('posts.show', 5); // то же самое
Массив параметров:
$url = route('posts.show', ['post' => 5, 'tab' => 'comments']);
// /posts/5?tab=comments
Редирект по имени
return redirect()->route('posts.index');
Группы с префиксом имени
Если несколько роутов в группе — им можно задать общий префикс:
Route::name('admin.')->prefix('admin')->group(function () {
Route::get('/users', fn () => 'Users')->name('users');
Route::get('/posts', fn () => 'Posts')->name('posts');
});
Имена будут admin.users и admin.posts.
Имя в Blade
<a href="{{ route('posts.show', $post->id) }}">Читать</a>
<a href="{{ route('admin.users') }}">Пользователи</a>
Ресурсные имена
Route::resource автоматически даёт имена:
| Метод | Имя |
|---|---|
| index | posts.index |
| create | posts.create |
| store | posts.store |
| show | posts.show |
| edit | posts.edit |
| update | posts.update |
| destroy | posts.destroy |
Проверка
php artisan route:list --name=posts
Фильтрует роуты по имени.