Skip to content

CatchAdmin 命令行工具

强大的 Artisan 命令集,简化开发和维护工作

CatchAdmin 提供了丰富的命令行工具,所有自定义命令都以 catch 为前缀,便于识别和使用。

查看所有 CatchAdmin 命令

shell
php artisan | grep catch

这些命令覆盖了项目安装、模块管理、数据库操作、代码生成等常见开发场景,显著提升开发效率。

🔧 基础命令

查看版本号

shell
php artisan catch:version

显示当前 CatchAdmin 的版本信息,用于版本确认和问题排查。

项目安装

shell
php artisan catch:install

用途:全新项目的初始化安装 功能

  • 创建基础数据表结构
  • 生成默认配置文件
  • 初始化系统基础数据
  • 设置默认管理员账户

📦 模块管理

模块安装

shell
php artisan catch:module:install <module>

参数说明

  • <module>:必需参数,模块名称

功能

  • 注册模块到系统
  • 执行模块的数据库迁移
  • 初始化模块配置
  • 生成模块路由缓存

示例

shell
# 安装权限管理模块
php artisan catch:module:install permissions

# 安装用户管理模块
php artisan catch:module:install users

🗄️ 数据库操作

创建迁移文件

shell
php artisan catch:make:migration <module> <migration_name>

参数说明

  • <module>:目标模块名称
  • <migration_name>:迁移文件名称

功能:在指定模块下创建数据库迁移文件,遵循 Laravel 迁移文件规范。

创建数据填充文件

shell
php artisan catch:make:seeder <module> <seeder_name>

参数说明

  • <module>:目标模块名称
  • <seeder_name>:数据填充文件名称

功能:创建模块专属的数据填充文件,用于初始化测试数据或基础配置数据。

执行数据库迁移

shell
php artisan catch:migrate <module>

功能:执行指定模块的数据库迁移文件,创建或更新模块相关的表结构。

示例

shell
# 执行权限模块的数据库迁移
php artisan catch:migrate permissions

执行数据填充

shell
php artisan catch:db:seed <module>

功能:执行指定模块的数据填充文件,为模块添加初始化数据。

示例

shell
# 执行权限模块的数据填充
php artisan catch:db:seed permissions

注意:确保先执行迁移命令创建表结构,再执行数据填充。

🔄 模块分发

导出模块菜单

shell
php artisan catch:export:menu <module> <table?>

参数说明

  • <module>:必需参数,模块名称
  • <table?>:可选参数,权限表名,默认为 permissions

功能

  • 导出模块的菜单权限配置
  • 生成对应的 seed 文件
  • 便于模块在不同项目间分发

使用场景

  • 模块开发完成后的打包分发
  • 跨项目模块迁移
  • 开源模块的标准化发布

示例

shell
# 导出权限模块的菜单配置
php artisan catch:export:menu permissions

适用范围

此命令主要用于模块分发场景。如果模块仅在当前项目使用,通常不需要执行此命令。

⚡ 代码生成

生成模型文件

shell
php artisan catch:make:model <module> <modelName> <table?>

参数说明

  • <module>:目标模块名称
  • <modelName>:模型类名称
  • <table?>:可选参数,对应的数据表名

功能

  • 在指定模块下生成模型文件
  • 自动继承 CatchModel 基类
  • 根据表结构生成 fillable 属性
  • 遵循 CatchAdmin 模型规范

示例

shell
# 在权限模块下生成 Users 模型
php artisan catch:make:model permissions Users

生成的模型内容

php
namespace Modules\Permissions\Models;

use Catch\Base\CatchModel as Model;

class Users extends Model
{
    protected $table = 'users';

    protected $fillable = [
        'id', 'username', 'password', 'email', 'avatar',
        'remember_token', 'department_id', 'creator_id',
        'status', 'login_ip', 'login_at', 'created_at',
        'updated_at', 'deleted_at',
    ];
}