跳转到主要内容

简介

Laravel Folio 是一个基于页面的路由器,只需放置 Blade 文件即可定义路由。 与传统的以 routes/web.php 为中心的定义方式不同,它能够将文件系统的结构直接映射到 URL。 对于以内容为中心的网站,或希望按页面快速添加页面的后台管理系统尤其有效。 在需要精细 HTTP 控制的场景(如 API)中,建议与常规路由搭配使用。

安装

首先通过 Composer 安装 Folio。
folio:install 会注册 Folio 的服务提供者。 默认情况下,resources/views/pages/ 为页面目录。 如果需要区分多个页面目录或基础 URI,请在服务提供者的 boot 中设置 Folio::path()uri()

创建路由

Folio 会从挂载目录下 Blade 文件的文件名自动生成 URL。

嵌套路由

嵌套目录时,URL 也会以同样的结构嵌套。

索引路由

index.blade.php 会映射到该目录的根路径。

路由参数

在文件名中使用 [] 即可接收 URL 段。
要接收多个段,请使用 ...

路由模型绑定

[User].blade.php 这样使用模型名,即可自动解析出模型实例。
如果要包含软删除的模型,请在页面中调用 withTrashed()
写作 [Post:slug].blade.php 时,可以使用 id 之外的键(例如 slug)来解析模型。

中间件

如果只对特定页面应用中间件,请在页面模板内使用 middleware()
要一次性对多个页面应用中间件,请使用 Folio::path(...)->middleware()

命名路由

也可以通过 name() 为 Folio 页面命名。
在诸如 users/[User].blade.php 这样的单个页面中定义 name('users.show') 后,就可以通过 route('users.show', ['user' => $user]) 生成带参数的 URL。
设置好路由名之后,可用 route() 辅助函数生成 URL。

文件与 URL 的对应关系

与传统路由的对比

即便使用 Folio,也可以通过 php artisan route:cache 启用路由缓存,从而在生产环境中优化性能。
最后修改于 2026年7月18日