Метод view
Метод view класса Route применяется для регистрации маршрута,
который сразу возвращает указанное представление, минуя контроллер.
Первым параметром передаётся URI маршрута, вторым - имя шаблона
(например, 'welcome' для resources/views/welcome.blade.php),
третьим - массив данных для передачи в представление (необязательный параметр).
Синтаксис
<?php
Route::view($uri, $view, $data);
?>
Пример
Давайте создадим маршрут для отображения главной страницы с использованием представления 'welcome':
<?php
use Illuminate\Support\Facades\Route;
Route::view('/', 'welcome');
?>
Теперь при переходе на корневой URL будет отображаться содержимое файла resources/views/welcome.blade.php.
Пример
Давайте передадим данные в представление с помощью третьего параметра:
<?php
use Illuminate\Support\Facades\Route;
Route::view('/about', 'about', ['name' => 'Laravel', 'version' => 11]);
?>
Представление 'about' будет иметь доступ к переменным
$name и $version. Вы можете использовать их
в шаблоне следующим образом:
<h1>About {{ $name }}</h1>
<p>Version: {{ $version }}</p>
Результат выполнения кода при переходе по URL /about:
<h1>About Laravel</h1>
<p>Version: 11</p>
Пример
Передадим массив данных в представление:
<?php
use Illuminate\Support\Facades\Route;
Route::view('/users', 'users', ['users' => ['user 1', 'user 2', 'user 3']]);
?>
В представлении мы можем перебрать переданный массив:
<ul>
@foreach ($users as $user)
<li>{{ $user }}</li>
@endforeach
</ul>
Результат выполнения кода при переходе по URL /users:
<ul>
<li>user 1</li>
<li>user 2</li>
<li>user 3</li>
</ul>
Пример
Используем метод view с параметрами маршрута.
Метод view сам по себе не поддерживает динамические сегменты,
но вы можете использовать метод where для валидации:
<?php
use Illuminate\Support\Facades\Route;
Route::view('/profile/{id}', 'profile')
->where('id', '[0-9]+');
?>
В представлении вы можете получить доступ к параметру
через объект request:
<h1>Profile ID: {{ request()->route('id') }}</h1>
Результат выполнения кода при переходе по URL /profile/42:
<h1>Profile ID: 42</h1>