ThinkCMF5中定义一个模型:

ThinkCMF中模型要带 Model后缀的
  1. <?php
  2. namespace app\user\model;
  3. use think\Model;
  4. class UserModel extends Model
  5. {
  6. }

模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,如:| 模型名 | 对应数据表(假设数据库的前缀定义是 cmf_) || —- | —- || UserModel | cmf_user |

模型默认会自动识别主键的,如果需要指定,可以设置属性 pk 属性:

  1. <?php
  2. namespace app\user\model;
  3. use think\Model;
  4. class UserModel extends Model
  5. {
  6. protected $pk = 'id';
  7. }

如果你的命名规则和上面约定的不符合,那么就要在Model类中指定数据表名称,以确保能够找到对应的数据表。

  1. <?php
  2. namespace app\user\model;
  3. use think\Model;
  4. class UserModel extends Model
  5. {
  6. protected $table = 'cmf_user';
  7. }

或:

  1. <?php
  2. namespace app\user\model;
  3. use think\Model;
  4. class UserModel extends Model
  5. {
  6. protected $name = 'user';
  7. }

$table$name两个属性都可以指定模型的数据表名,$table指定的是真实的数据表名,$name指定的是不带表前缀的数据表名,只要设置一个就可以了,如果两个同时设置,以$table设置的为准;

模型调用

先 use:

  1. use app\user\model\UserModel;

再使用:

  1. // 静态调用
  2. $user = UserModel::get(1);
  3. // 实例化模型并添加一个用户
  4. $user = new UserModel;
  5. $user->user_nickname = '老猫666';
  6. $user->save();
  7. // 使用 Loader 类实例化(单例)
  8. $user = Loader::model('User');
  9. $user->user_nickname = '老猫666';
  10. $user->save();
  11. // 或者使用助手函数`model`
  12. $user = model('User');
  13. $user->user_nickname = '老猫666';
  14. $user->save();

原文: https://www.thinkcmf.com/docs/cmf/模型定义.html