Laravel Folio — система маршрутизации на основе файлов и каталогов

Источник: «Laravel Folio»
Laravel Folio — новая система автоматической маршрутизации на основе файлов и каталогов. В результате вы получаете каталог страниц; когда на одну из этих страниц попадает URL, она автоматически загружается.

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 будут выглядеть следующим образом:

Затем они будут сопоставлены с файлами 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.

Дополнительные материалы

Предыдущая Статья

Аннулирование сессий на других устройствах в Laravel

Следующая Статья

Как более эффективно прослушивать событие в разных сценариях