Files
rxthinkcmf-wiki/RXThinkCMF_ThinkPhp8_EleVue/.vitepress/dist/assets/zh_guide_overview.md.C5OyGWBL.lean.js
T
2026-10-25 18:52:36 +08:00

45 lines
7.0 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as s,o as n,c as e,a2 as p}from"./chunks/framework.B-QBKwc1.js";const m=JSON.parse('{"title":"概述与目标","description":"本章以项目内置的 example(案例演示) 模块为例,从数据库建表到前端页面联调,手把手演示开发全流程。","frontmatter":{},"headers":[],"relativePath":"zh/guide/overview.md","filePath":"zh/guide/overview.md"}'),l={name:"zh/guide/overview.md"};function t(i,a,d,o,c,r){return n(),e("div",null,[...a[0]||(a[0]=[p(`<h1 id="_3-1-概述与目标" tabindex="-1">3.1 概述与目标 <a class="header-anchor" href="#_3-1-概述与目标" aria-label="Permalink to &quot;3.1 概述与目标&quot;">​</a></h1><div class="tip custom-block"><p class="custom-block-title">概述</p><p>本章以项目内置的 <strong>example(案例演示)</strong> 模块为例,从数据库建表到前端页面联调,手把手演示开发全流程。学完本章后,您将掌握新增业务模块的标准步骤。</p></div><h2 id="开发流程总览" tabindex="-1">开发流程总览 <a class="header-anchor" href="#开发流程总览" aria-label="Permalink to &quot;开发流程总览&quot;">​</a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 1. 建表 │ 创建数据库表(含公共字段)</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 2. Model │ 创建数据模型(继承 BaseModel)</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 3. Validate│ 创建验证器 + Logic 配置 validateClass</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 4. Logic │ 创建逻辑层(配置属性 + 钩子)</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 5. Controller│ 创建控制器(注解 + 异常处理)</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 6. Route │ 注册路由</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 7. Menu │ 配置菜单权限(可选)</span></span>
<span class="line"><span>└────┬─────┘</span></span>
<span class="line"><span> │</span></span>
<span class="line"><span> ▼</span></span>
<span class="line"><span>┌──────────┐</span></span>
<span class="line"><span>│ 8. Frontend│ 前端 API + 页面([详见第 9 章](/zh/frontend/overview.html))</span></span>
<span class="line"><span>└──────────┘</span></span></code></pre></div><h2 id="开发约定" tabindex="-1">开发约定 <a class="header-anchor" href="#开发约定" aria-label="Permalink to &quot;开发约定&quot;">​</a></h2><table tabindex="0"><thead><tr><th>约定</th><th>说明</th><th>示例</th></tr></thead><tbody><tr><td>表名</td><td><code>think_</code> 前缀 + 小写下划线</td><td><code>think_example</code></td></tr><tr><td>字段名</td><td>小写下划线</td><td><code>create_time</code>、<code>user_id</code></td></tr><tr><td>主键</td><td>统一使用 <code>id</code>,INT 自增</td><td><code>id INT PRIMARY KEY AUTO_INCREMENT</code></td></tr><tr><td>Model</td><td>继承 <code>BaseModel</code>,类名与表名对应</td><td><code>class Example extends BaseModel</code></td></tr><tr><td>Logic</td><td>继承 <code>BaseLogic</code> 或 <code>BaseTenantLogic</code></td><td><code>class ExampleLogic extends BaseLogic</code></td></tr><tr><td>Controller</td><td>继承 <code>BaseController</code></td><td><code>class ExampleController extends BaseController</code></td></tr><tr><td>权限码</td><td><code>sys:模块名:操作</code></td><td><code>sys:example:add</code></td></tr><tr><td>路由</td><td>RESTful 风格</td><td><code>GET /api/example/page</code></td></tr></tbody></table><h2 id="本章示例" tabindex="-1">本章示例 <a class="header-anchor" href="#本章示例" aria-label="Permalink to &quot;本章示例&quot;">​</a></h2><p>本章以项目内置的 <strong>example(案例演示)</strong> 模块为例,完整演示从建表到联调的全过程。该模块是代码生成器的参考模板,涵盖了标准 CRUD 的所有典型场景:</p><ul><li>分页列表(支持名称模糊搜索、类型和状态精确过滤)</li><li>全量列表</li><li>详情查询</li><li>新增(含头像上传)</li><li>修改</li><li>删除 / 批量删除</li><li>Excel 导入导出</li><li>权限控制(#[Permission] 注解)</li><li>操作日志(#[Log] 注解)</li><li>枚举显示名翻译(type / status 字典映射)</li></ul><h2 id="涉及文件" tabindex="-1">涉及文件 <a class="header-anchor" href="#涉及文件" aria-label="Permalink to &quot;涉及文件&quot;">​</a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>app/model/Example.php # 数据模型</span></span>
<span class="line"><span>app/validate/ExampleValidate.php # 验证器</span></span>
<span class="line"><span>app/logic/ExampleLogic.php # 业务逻辑</span></span>
<span class="line"><span>app/controller/ExampleController.php # 控制器</span></span>
<span class="line"><span>route/app.php # 路由(第371行)</span></span>
<span class="line"><span>ui/src/api/tool/example.ts # 前端 API 模块</span></span>
<span class="line"><span>ui/src/views/tool/example/ # 前端页面</span></span></code></pre></div>`,11)])])}const u=s(l,[["render",t]]);export{m as __pageData,u as default};