Laravel Folio 是一种新的自动文件和目录路由系统。它提供了一个 "pages" 目录,当从 URL 访问该目录中的页面时,会自动加载页面。以下是 Taylor 在 Laracon 演示中展示的示例。
更新: Laravel Folio 测试版现已发布.
要使用此功能,请在 boostrap/app.php
文件中定义页面所在的目录,告诉 Laravel 页面在哪里。
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
但你也可以通过更改文件名以使用模型来利用路由模型绑定:
/users/[User].blade.php
然后它就知道要加载 id 传递的用户模型。非常强大!
但是,还有更多...
你也可以将模型绑定到一个目录,例如:
/talks/[Talk]/feedback.php
这将映射到 site.com/talks/1/feedback
,并在后台使用 FindOrFail
自动加载 Talk 模型。