定义模型
- 定义一个和数据库表向匹配的模型;
class User extends Model
- 模型会自动对应数据表,并且有一套自己的命名规则;
3. 模型类需要去除表前缀(tp_),采用驼峰式命名,并且首字母大写;tp_user(表名) => User
tp_user_type(表名) => UserType
- 如果担心设置的模型类名和 PHP 关键字冲突,可以开启应用类后缀;
5. 在 app.php 中,设置 class_suffix 属性为 true 即可;// 应用类库后缀
'class_suffix' => true,
- 设置完毕后,所有的控制器类名和模型类名需要加上 Controller 和 Model;
class UserModel设置模型
- 默认主键为 id,你可以设置其它主键,比如 uid;
protected $pk = 'uid';
- 从控制器端调用模型操作,如果和控制器类名重复,可以设置别名;
use app\model\User as UserModel;
- 在模型定义中,可以设置其它的数据表;
protected $table = 'tp_one';
- 模型和控制器一样,也有初始化,在这里必须设置 static 静态方法;
//模型初始化
protected static function init()
{
//第一次实例化的时候执行 init
echo '初始化 User 模型';
}
模型操作
- 模型操作数据和数据库操作一样,只不过不需要指定表了;
UserModel::select();
- 数据库操作返回的列表是一个二维数组,而模型操作返回的是一个结果集;
[[]] 和 [{}]