定义模型

  1. 定义一个和数据库表向匹配的模型;
    1. class User extends Model
  2. 模型会自动对应数据表,并且有一套自己的命名规则;
    3. 模型类需要去除表前缀(tp_),采用驼峰式命名,并且首字母大写;
    1. tp_user(表名) => User
    2. tp_user_type(表名) => UserType
  3. 如果担心设置的模型类名和 PHP 关键字冲突,可以开启应用类后缀;
    5. 在 app.php 中,设置 class_suffix 属性为 true 即可;
    1. // 应用类库后缀
    2. 'class_suffix' => true,
  4. 设置完毕后,所有的控制器类名和模型类名需要加上 Controller 和 Model;
    class UserModel

    设置模型

  5. 默认主键为 id,你可以设置其它主键,比如 uid;
    1. protected $pk = 'uid';
  6. 从控制器端调用模型操作,如果和控制器类名重复,可以设置别名;
    1. use app\model\User as UserModel;
  7. 在模型定义中,可以设置其它的数据表;
    1. protected $table = 'tp_one';
  8. 模型和控制器一样,也有初始化,在这里必须设置 static 静态方法;
    1. //模型初始化
    2. protected static function init()
    3. {
    4. //第一次实例化的时候执行 init
    5. echo '初始化 User 模型';
    6. }

    模型操作

  9. 模型操作数据和数据库操作一样,只不过不需要指定表了;
    1. UserModel::select();
  10. 数据库操作返回的列表是一个二维数组,而模型操作返回的是一个结果集;
    1. [[]] [{}]