webman make:model 是生成模型文件的命令,但需注意路径映射、support\Model 依赖加载及手动补全表名等配置,否则会导致类找不到或查询失败。

webman make:model 是 Webman 里生成模型文件最直接的方式,但实际用起来容易卡在路径、命名、继承关系这几个地方。
model 文件默认放在 app/model 下,但路径参数会影响生成位置
webman make:model 命令接受一个「类名」或「带斜杠的命名空间路径」作为参数,它会自动转换成目录结构和文件名:
-
php webman make:model User→ 生成app/model/User.php -
php webman make:model admin/Role→ 生成app/admin/model/Role.php -
php webman make:model api/v1/Post→ 生成app/api/v1/model/Post.php
注意:路径中每一段都会变成子目录,但首段(如 admin)必须对应已存在的模块目录,否则后续加载时会报 Class not found。Webman 不会自动创建中间目录,得手动补上 app/admin/model 这类路径。
生成的模型默认继承 support\Model,但你要确认 vendor/autoload.php 已加载 support
Webman 的模型基类support\Model 并非 PHP 内置,它来自 workerman/support 包。如果项目里没装这个依赖,或者 composer autoload 没生效,生成的模型文件一运行就报错:
Class 'support\Model' not found
检查方式:
- 运行
composer show workerman/support看是否安装 - 查看
vendor/composer/autoload_psr4.php是否包含"support\" => ["vendor/workerman/support/src/"]
没配好就别急着跑 make:model,先 composer require workerman/support 补上依赖。
Webman 2.2.0版本强化了 TCP/UDP 服务支持,优化路由组管理,并增强异步任务处理能力。结合协程与连接池技术,Webman 能轻松应对高并发场景,适用于网站、接口服务、即时通讯、物联网及游戏开发,兼具高性能、灵活扩展与稳定可靠,是多场景 PHP 服务开发的理想选择。
生成后要手动补字段定义和表名,命令不写这些
webman make:model 只生成骨架,比如:
<?php
namespace app\model;
use support\Model;
class User extends Model
{
}它不会自动加 $table、$fillable 或字段属性。你得自己填:
- 表名不匹配默认规则(如
User对应users)?加protected $table = 'my_users'; - 要批量赋值?加
protected $fillable = ['name', 'email']; - 主键不是
id?加protected $primaryKey = 'user_id';
漏掉这些,查数据可能返回空,写入可能报 MassAssignmentException。
别把 model 和 migration 混了,Webman 默认不带迁移命令
有人以为make:model 会顺手建数据库表,其实不会。Webman 没内置 make:migration 或 migrate 命令。建表得自己写 SQL、用第三方迁移工具(如 Laravel Zero)、或手写 PDO 初始化脚本。
如果你依赖 ORM 的自动建表能力,得确认:
- 用的是
support\Model的扩展版(比如加了createTableIfNotExists()的自定义基类) - 或者额外集成了
doctrine/dbal类工具
否则,模型文件生成完,数据库还是一张空表。
模型生成只是第一步,真正能用起来,得盯住路径映射、autoload 加载、表结构同步这三处。少一个,new User() 就可能直接挂掉。

















