PHP 怎么PHP Voyager

wen PHP项目 1

本文目录导读:

PHP 怎么PHP Voyager

  1. 什么是 Voyager?
  2. 安装步骤
  3. 基本使用
  4. 常用功能
  5. 常用命令
  6. 高级功能
  7. 常见问题和解决方案

我来详细介绍一下 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)功能:

  1. 登录到 /admin
  2. 点击 Tools → BREAD
  3. 选择你的数据表(如 posts
  4. 配置各个字段的显示类型、验证规则等

自定义菜单

在后台 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/

抱歉,评论功能暂时关闭!