Laravel Folio — система маршрутизации на основе файлов и каталогов
Laravel Folio — новая система автоматической маршрутизации на основе файлов и каталогов. В результате вы получаете каталог страниц
; при попадании на одну из этих страниц по URL она автоматически загружается. Выпуск Laravel Folio запланирован на следующую неделю, и вот предварительный обзор того, что Тейлор продемонстрировал на Laracon:
Чтобы воспользоваться этой возможностью, укажите Laravel, где находятся ваши страницы, определив их в файле boostrap/app.php
:
return Application::configure()
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
pages: __DIR__.'/../resources/views/pages',
)
Например, если у вас статический сайт с индексной страницей и страницей О сайте
, то ваши URL будут выглядеть следующим образом:
site.com
site.com/about
Затем они будут сопоставлены с файлами index.blade.php
и about.blade.php
.
Laravel Folio также поддерживает подстановочные знаки в именах страниц. Это позволяет осуществлять динамическую маршрутизацию. Например:
users/[id].blade.php
Затем вы можете использовать id
в верхней части страницы для извлечения модели из базы данных непосредственно в Blade.
@php
$user = /App/Models/User::findOrFail($id);
@endphp
Но можно воспользоваться и привязкой маршрутной модели, изменив имя файла на Model
:
/users/[User].blade.php
Тогда он просто знает, что нужно загрузить пользователя с переданным id
. Довольно мощно!
Но подождите, это ещё не все...
Можно также привязать модели к каталогу следующим образом:
/talks/[Talk]/feedback.php
Он будет привязан к site.com/talks/1/feedback
и автоматически загрузит модель Talk
за кулисами с помощью FindOrFail
.