# 1.2 为什么选择我们 ## 声明式 CRUD,开发效率倍增 项目最大的特点是声明式 CRUD 架构。只需在数据库中建好表,通过代码生成器即可一键生成完整的前后端 CRUD 模块: ```bash # 通过 Web 界面操作:开发工具 → 代码生成,选择表 → 配置 → 生成 # 或通过命令行 php artisan generate:code {表名} ``` 生成器会自动完成: - **后端代码**:Model、FormRequest、Service、Controller 全套文件 - **前端页面**:列表页、编辑弹窗、详情弹窗 - **API 接口**:前端 TypeScript API 模块 - **菜单权限**:自动插入菜单记录和权限节点 - **路由注册**:自动将新模块接入 `routes/api.php` 一个标准 CRUD 模块从手写到调试通常需要 1-2 天,使用生成器只需几分钟。 ## 完整的 RBAC 权限体系 系统内置了企业级的基于角色的访问控制: - **用户管理**:用户增删改查、重置密码、角色分配 - **角色管理**:角色增删改查、菜单权限分配 - **菜单管理**:菜单树形结构、权限节点定义 - **部门管理**:组织架构树形管理 - **权限粒度**:精确到每个操作(`sys:user:add`、`sys:user:delete` 等) - **超级管理员**:用户 ID=1 自动拥有所有权限,无需额外配置 后端通过 `#[Permission('sys:user:add')]` 注解声明,中间件反射统一鉴权;前端通过 `v-perm` 指令自动控制按钮的显示和隐藏,与后端权限保持一致。 ## 声明式 Laravel 架构 项目采用"声明式配置 + 基类钩子"模式,代码结构清晰。以本项目内置的示例服务 `app/Services/ExampleService.php` 为例: ```php */ protected array $pageLikeFields = ['name']; /** * 精确匹配字段 * * status 用于按状态筛选。 * * @var array */ protected array $pageEqFields = ['status']; /** * 唯一性校验字段 * * @var array */ protected array $uniqueFields = ['name']; /** * 字典翻译配置:[字段 => 字典编码] * * 读取时为 status 补 statusText。 * * @var array */ protected array $serializeMaps = [ 'status' => 'example_status', ]; } ``` 控制器只需声明注解并调用通用方法(`app/Http/Controllers/Api/ExampleController.php`): ```php class ExampleController extends Controller { /** * 构造函数 * * 注入示例业务服务,供各接口方法复用。 * * @param ExampleService $exampleService 示例业务服务 */ public function __construct(protected ExampleService $exampleService) {} /** * 查询分页 * * 对应权限:sys:example:page,操作日志类型:查询。 * * @return JsonResponse 分页数据 */ #[OperationLog('示例管理-查询分页', OperationLog::TYPE_QUERY)] #[Permission('sys:example:page', '示例分页')] public function page(): JsonResponse { return $this->_page($this->exampleService); // 一行搞定分页查询 } /** * 新增 * * @param ExampleRequest $request 已通过校验的示例请求 * @return JsonResponse 新增结果 */ #[OperationLog('示例管理-新增', OperationLog::TYPE_ADD, '新增示例:{name}')] #[Permission('sys:example:add', '添加示例')] public function add(ExampleRequest $request): JsonResponse { return $this->_add($this->exampleService, $request->validated()); } } ``` 所有模块遵循相同的分层模式(Controller → Service → Model,FormRequest 做格式验证),新成员上手快,代码可维护性强。 ## 丰富的内置模块 系统预置了 20+ 个常用业务模块,开箱即用: - **系统管理**:用户、角色、菜单、部门、职级、岗位、租户 - **系统配置**:字典管理、系统配置、参数管理 - **内容管理**:文章管理、分类管理、公告管理、友情链接 - **系统监控**:登录日志、操作日志、定时任务 - **开发工具**:代码生成器、文件上传、示例模块 这些模块不仅可以直接使用,也是学习本框架开发模式的最佳参考(详见 [第 6 章 业务模块](/zh/modules/user.html))。 ## Vue3 + AntDesign 前端 前端采用主流技术栈,开发体验优秀: - **Vue3 Composition API**:更灵活的组件逻辑组织 - **TypeScript**:类型安全,减少运行时错误 - **AntDesign**:成熟的企业级 UI 组件库 - **Pinia**:轻量级状态管理 - **Vite**:极速的开发服务器和构建工具 - **动态路由**:菜单和路由由后端驱动,前端无需硬编码 ## 开箱即用的开发体验 从获取源码到运行项目,只需几步: ```bash # 1. 从官方网站 https://www.rxthink.cn 下载源码包并解压 cd RXThinkCMF_Laravel13_AntdVue # 2. 一键初始化(依赖 + .env + APP_KEY + 迁移 + 前端构建) composer setup # 3. 导入数据库(本项目 migrations 为空,以 SQL 脚本为准) mysql -uroot -proot -e "CREATE DATABASE \`rxthinkcmf.laravel13.antdvue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" mysql -uroot -proot rxthinkcmf.laravel13.antdvue < document/mysql/rxthinkcmf.laravel13.antdvue.sql # 4. 修改 .env 数据库配置后,启动后端(含队列 / 日志 / Vite) composer dev # 5. 启动前端(独立 AntdVue 仓库) cd ui && npm install && npm run dev ``` 访问前端地址即可使用。默认超级管理员账号 `admin / 123456` 可直接登录。 :::tip 完整步骤请参考 [1.4 新手入门指南](/zh/course.html);Windows + Laragon 环境请参考 [2.2 Laragon 环境搭建](/zh/quickstart/laragon.html);想跳过手动环境安装可直接用 [2.8 Docker 快速体验](/zh/quickstart/docker.html)。 ::: ## 多数据库支持 通过环境变量一键切换数据库: ```ini # .env DB_CONNECTION=mysql # MySQL(默认推荐) # DB_CONNECTION=pgsql # PostgreSQL # DB_CONNECTION=sqlsrv # SQL Server # DB_CONNECTION=oracle # Oracle(需 pdo_oci 扩展) # DB_CONNECTION=sqlite # SQLite ``` 业务代码零修改,Eloquent 自动处理 SQL 差异;代码生成器与跨库迁移工具([7.6 数据库迁移工具](/zh/tools/db-migrate.html))同步适配多种驱动。 ## 多租户与数据权限 内置企业级多租户隔离体系: - **租户隔离**:通过 `BaseTenantService` 基类自动处理 `tenant_id` 过滤与填充 - **数据权限**:支持全部数据 / 本部门数据 / 仅本人数据三种范围(`HasDataScope` 按角色解析,当前默认全部数据) - **超级管理员**:`tenant_id=0` 的用户不受租户隔离限制,创建数据时自动代入默认租户 详见 [5.8 多租户隔离](/zh/core/tenant.html) 与 [5.9 数据权限](/zh/core/data-scope.html)。 ## 持续更新 项目持续迭代,紧跟技术发展: - 后端升级至 Laravel 13 + PHP 8.3(本版本) - 声明式 CRUD 体系持续增强,覆盖导入导出、定时任务、代码生成等场景 - 前端持续升级 Vue3 + AntDesign 主流栈 - 代码生成器功能不断增强 - 安全机制持续完善(JWT fail-close 校验、演示模式、受信代理等) ## 适用场景 项目适合以下场景: - 企业内部管理系统(ERP、CRM、OA 等) - 内容管理系统(CMS) - 数据管理后台 - SaaS 多租户平台 - 快速原型开发 - 学习 Laravel + Vue 全栈开发