webman 本身不提供自动化代码生成器,所有“一键生成 crud”能力均来自上层插件或第三方扩展;webman make:model 仅生成空 php 类,不读取数据库元信息,需手动补全 $fillable、$casts 等,且不生成表单与接口。

Webman 本身不提供自动化代码生成器 —— 所有“一键生成 CRUD”能力都来自上层插件或第三方扩展,不是框架内置功能。
webman make:model 为什么不能直接生成表单和接口
webman make:model 只负责生成空的 PHP 类文件,不读取数据库结构,也不推导字段类型、长度、是否为空、注释等元信息。它连 $table 和 $fillable 都要手动补全,更别说生成前端组件或控制器逻辑。
常见错误现象:
- 运行
php webman make:model User后调用User::create()报MassAssignmentException—— 忘了加$fillable - 查出的
created_at是字符串而非Carbon实例 —— 漏了$casts = ['created_at' => 'datetime'] - 字段明明有中文注释,但生成的表单没显示 label —— 注释未被提取,也未通过接口暴露
SaiAdmin / EvoAdmin / ELADMIN 的生成器实际怎么工作的
这些工具本质是「数据库驱动 + 模板引擎 + 元信息采集」的组合体,不是 Webman 自带能力。它们在运行时会:
Webman 2.2.0版本强化了 TCP/UDP 服务支持,优化路由组管理,并增强异步任务处理能力。结合协程与连接池技术,Webman 能轻松应对高并发场景,适用于网站、接口服务、即时通讯、物联网及游戏开发,兼具高性能、灵活扩展与稳定可靠,是多场景 PHP 服务开发的理想选择。
- 连接 MySQL,查询
information_schema.columns获取字段名、类型、默认值、是否为空、注释 - 把
tinyint(1)映射为 switch 控件,varchar映射为 input,text映射为 textarea - 用 Twig 或 Blade 渲染后端代码模板(Controller、Service、Request),再用 Vue 模板渲染前端页面
- 把字段注释转成
label,把NOT NULL转成required: true
所以你必须先确保数据库表已建好、字段注释写清楚,否则生成结果会漏字段或控件错配。
自己搭简易生成器要注意的三件事
如果不想依赖 SaiAdmin 这类完整框架,想轻量集成生成能力,重点不是写模板,而是打通「数据库 → 元数据 → 接口 → 前端」链路:
- 别用
support\Db直接查数据 —— 它不返回字段定义;改用原生 SQL 查information_schema,或引入doctrine/dbal补位 - 字段类型映射规则要收口管理,比如
enum字段得关联字典表,不能硬编码在模板里 - 生成的代码路径必须可配置(如
app/controllervsapp/http/controllers),否则换 ORM 就崩
真正容易被忽略的是:生成器跑一次就完事,但表结构变一次,就得重新生成+人工合并。没有 diff 机制和增量更新逻辑的生成器,三个月后就会变成维护噩梦。










