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 中的每一个路由。
要在项目中使用 Folio,首先需要安装并启用它:
composer require laravel/folio
bootstrap/app.php 或 app/Providers/RouteServiceProvider.php 中调用 Folio::route() 来启动文件路由。例如,在 RouteServiceProvider 的 boot 方法中添加:
use Laravel\Folio\Folio;
<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 等路径。<!-- 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 = \App\Models\Post::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中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号