[模型]
[模型定义]
ThinkCMF6.0中定义一个模型:
ThinkCMF中模型要带
Model后缀的,并且要指定模型名称
<?phpnamespace app\user\model;use think\Model;class UserModel extends Model{/*** 模型名称* @var string*/protected $name = 'user';}
模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,如: | 模型名 | 对应数据表(假设数据库的前缀定义是 cmf_) | | —- | —- | | UserModel | cmf_user |
模型默认会自动识别主键的,如果需要指定,可以设置属性 pk 属性:
<?phpnamespace app\user\model;use think\Model;class UserModel extends Model{protected $pk = 'id';/*** 模型名称* @var string*/protected $name = 'user';}
如果你的命名规则和上面约定的不符合,那么就要在Model类中指定数据表名称,以确保能够找到对应的数据表。
<?phpnamespace app\user\model;use think\Model;class UserModel extends Model{protected $table = 'cmf_user';}
或:
<?phpnamespace app\user\model;use think\Model;class UserModel extends Model{protected $name = 'user';}
$table和$name两个属性都可以指定模型的数据表名,$table指定的是真实的数据表名,$name指定的是不带表前缀的数据表名,只要设置一个就可以了,如果两个同时设置,以$table设置的为准;建议用$name指定模型的数据表名。
[模型调用]
先 use:
use app\user\model\UserModel;
再使用:
// 静态调用$user = UserModel::get(1);// 实例化模型并添加一个用户$user = new UserModel;$user->user_nickname = '老猫渣渣';$user->save();
