laravel Folio通过文件系统自动生成路由,无需手动定义。安装后配置Folio::path并设置中间件,resources/views/pages下的Blade文件自动映射为对应URL,如home.blade.php→/home,子目录按路径生成,支持[index]命名的动态参数,如[slug].blade.php捕获变量,可在模板中直接使用${“param”}获取值,结合php脚本处理简单逻辑,支持布局设定与全局数据共享,适用于快速构建静态或内容型站点。

Laravel Folio 是 Laravel 官方推出的基于文件系统的轻量级路由系统,特别适合构建不需要复杂路由定义的静态页面或简单内容型网站。它通过约定优于配置的方式,将 resources/views/pages 目录下的 Blade 文件自动映射为 Web 路由,无需手动编写 routes/web.php 中的每一个路由。
启用 Laravel Folio
要在项目中使用 Folio,首先需要安装并启用它:
- 通过 composer 安装 Folio:
composer require laravel/folio - 在
bootstrap/app.php或app/Providers/RouteServiceProvider.php中调用 Folio::route() 来启动文件路由。
例如,在 RouteServiceProvider 的 boot 方法中添加:
use LaravelFolioFolio; <p>Folio::path(resource_path('views/pages'))->middleware(['web']);
这表示所有位于 resources/views/pages 的 Blade 文件都会被自动注册为路由。
基础路由映射规则
Folio 根据文件路径生成对应的 URL 路径:
-
resources/views/pages/home.blade.php→/home -
resources/views/pages/index.blade.php→/(根路径) -
resources/views/pages/about.blade.php→/about - 子目录:
resources/views/pages/blog/post-1.blade.php→/blog/post-1
你不需要做任何额外配置,只要文件存在,就能通过对应 URL 访问。
使用变量和动态路由
Folio 支持基于文件名的动态参数绑定。使用 [slug] 这样的命名方式即可捕获动态段。
-
resources/views/pages/posts/[id].blade.php可以匹配/posts/1、/posts/abc等路径。 - 在 Blade 模板中通过 ${“id”} 获取参数值:
<!-- resources/views/pages/posts/[id].blade.php --> <h1>查看文章 ID:{{ $id }}</h1>
支持多层嵌套和多个参数:
-
pages/users/[user]/photos/[photo].blade.php→/users/alice/photos/1 - 可用变量:
$user和$photo
在页面中处理数据或逻辑
虽然 Folio 主要用于静态内容展示,但也可以通过在 Blade 文件顶部插入 PHP 脚本来处理数据。
<?php $post = AppModelsPost::find($id); <pre class="brush:php;toolbar:false;"><pre class="brush:php;toolbar:false;">if (! $post) { abort(404); } $title = $post->title;
?youjiankuohaophpcn
<h1>{{ $title }}</h1> <p>{{ $post->content }}</p>
这种写法适合简单的页面逻辑,保持简洁的同时避免创建控制器。
设置布局和共享数据
你可以为一组页面指定公共布局:
// 在 RouteServiceProvider 中设置默认布局 Folio::path(resource_path('views/pages')) ->layout('layouts.app');
或者在特定文件夹下使用不同的布局:
Folio::path('resources/views/pages/admin') ->layout('layouts.admin');
还可以通过 share 方法注入全局数据:
Folio::share('siteName', 'My Blog');
这样所有页面都可以直接使用 {{ $siteName }}。
基本上就这些。Laravel Folio 让你用最简单的方式快速搭建内容型站点,省去大量重复的路由定义工作,特别适合文档页、营销页、博客等场景。
以上就是laravel Folio基于文件的路由如何使用_Laravel Folio文件路由使用教程的详细内容,更多请关注php中文网其它相关文章!