ThinkPHP模型需严格遵循命名与路径规范:文件置于app/model/下,首字母大写驼峰命名(如Users.php对应class Users),并显式声明$name或$table及$pk;推荐用php think make:model生成骨架,再验证User::find(1)是否正常返回数据。

ThinkPHP 创建模型,核心是让一个 PHP 类准确对应一张数据库表,并能被框架自动识别和调用。不按规范来,哪怕代码只差一个字母,也会报“Class not found”或“Table not found”。
模型文件位置和命名必须严格匹配
模型类统一放在 app/model/ 目录下,文件名和类名都要首字母大写、驼峰式,且完全一致:
- 数据表是
users→ 文件名写Users.php,类名写class Users extends Model - 数据表是
user_info→ 文件名写UserInfo.php,类名写class UserInfo extends Model - 不能写成
user.php、usersmodel.php或UserModel.php,否则自动加载失败
必须显式声明表名和主键
ThinkPHP 6/8 不再自动推导表名,$name 或 $table 属性不能省略:
- 类名是
User,但表名是members→ 写protected $name = 'members'; - 主键字段不是
id(比如是uid)→ 补上protected $pk = 'uid'; - 有表前缀(如
think_)→ 推荐直接写protected $table = 'think_user';,它比$name优先级更高
推荐用命令行快速生成骨架
终端进入项目根目录(确保有 think 可执行文件),运行:
该命令会自动生成带命名空间、继承 Model、预置 $table 和 $pk 的文件。生成后仍需检查并确认 $table 或 $name 是否与实际表名一致。
验证模型是否生效
在控制器中写一行测试代码:
use app\model\User;$user = User::find(1); dump($user);- 确保数据库
user表中真实存在id = 1的记录;若返回null,先排查数据是否存在,再查模型配置
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











