本文目录导读:

我来详细介绍一下 PHP Voyager(通常称为 Voyager Admin)的使用方法。
什么是 Voyager?
Voyager 是一个基于 Laravel 的免费开源管理后台包,用来快速搭建后台管理系统。
安装步骤
环境要求
- PHP >= 7.3
- Laravel >= 6.0
- MySQL / PostgreSQL 等数据库
安装 Laravel
composer create-project laravel/laravel myproject cd myproject
安装 Voyager
composer require tcg/voyager
安装 Voyager
php artisan voyager:install
创建管理员账号
php artisan voyager:admin your@email.com
基本使用
访问后台
- 访问
http://yourdomain.com/admin - 使用创建的管理员账号登录
创建数据表
在 Laravel 中创建模型和迁移:
php artisan make:model Post -m
编辑迁移文件 database/migrations/xxxx_create_posts_table.php:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->string('author_name');
$table->timestamps();
});
}
执行迁移:
php artisan migrate
添加 BREAD 管理
在后台管理中,你需要为每个数据表添加 BREAD(Browse, Read, Edit, Add, Delete)功能:
- 登录到
/admin - 点击 Tools → BREAD
- 选择你的数据表(如
posts) - 配置各个字段的显示类型、验证规则等
自定义菜单
在后台 Menu 中添加和管理菜单项,可以添加自定义链接、子菜单等。
常用功能
自定义字段类型
Voyager 支持多种字段类型:
- 文本输入框
- 富文本编辑器(使用 TINYMCE)
- 图片上传
- 下拉选择
- 复选框
- 日期选择器
- 等
关系管理
在 BREAD 设置中可以定义关系:
// Post.php 模型中定义关系
public function author()
{
return $this->belongsTo(User::class, 'author_id');
}
权限管理
后台可以:
- 创建用户角色(admin, editor, etc.)
- 分配权限
- 控制用户对特定 BREAD 的操作权限
自定义视图
可以覆盖默认视图:
php artisan vendor:publish --tag=voyager_views
使用 Voyager API
// 控制器中
use TCG\Voyager\Facades\Voyager;
public function index()
{
$posts = \App\Models\Post::all();
return view('posts.index', compact('posts'));
}
常用命令
# 查看所有 Voyager 命令 php artisan list voyager # 发布资源文件 php artisan vendor:publish --tag=voyager_assets # 安装 Voyager 依赖 php artisan voyager:install # 创建管理员 php artisan voyager:admin your@email.com --force # 更新 Voyager php artisan voyager:update
高级功能
自定义控制器
// 创建自定义控制器继承 Voyager 基类
use TCG\Voyager\Http\Controllers\VoyagerBaseController;
class PostController extends VoyagerBaseController
{
public function afterStore($request, $data)
{
// 保存后的额外逻辑
}
}
自定义表单字段
在 resources/views/vendor/voyager/formfields/ 目录下创建自定义字段类型。
事件监听
// 在 EventServiceProvider 中
Event::listen('voyager.post.created', function ($data) {
// 数据创建后的逻辑
});
常见问题和解决方案
权限问题
确保 storage 目录有写权限:
sudo chmod -R 777 storage bootstrap/cache
图片上传失败
检查目录权限和配置:
// config/voyager.php
'storage' => [
'disk' => 'public',
],
404 错误
清除缓存:
php artisan route:clear php artisan config:clear php artisan cache:clear
Voyager 是一个功能强大的后台管理工具,主要优点:
- 快速搭建后台
- 可视化 BREAD 管理
- 完善的权限系统
- 丰富的字段类型
- 支持多语言
- 主题系统
适合快速开发管理系统、内容管理系统等应用,如果需要更详细的教程,推荐查看官方文档:https://voyager.readme.io/