Sivo 悉见

6.26 动态模型

匿名 · 更新于 2013/12/25

新版的模型可以在不同的类型之间切换,例如你可以从基本模型切换到高级模型或者视图模型,而当前的数据不会丢失,并可以控制要传递的参数和动态赋值。
要切换模型,可以使用:
  1. $User = M("User"); // 实例化User对象 是基础模型类的实例
  2.  // 动态切换到高级模型类 执行top10查询操作
  3. $User->switchModel("Adv")->top10();
上面的写法也可以改成
  1. $User = M("AdvModel:User"); // 实例化User对象 是基础模型类的实例
  2. $User->top10();
1
如果要传递参数,可以使用:
  1. $User = D("User"); // 实例化User对象 是基础模型类的实例
  2.  // 动态切换到视图模型类 并传入viewFields属性
  3. $UserView = $User->switchModel("View",array("viewFields"));
如果要动态赋值,可以使用:
  1. $User = M("User"); // 实例化User对象 是基础模型类的实例
  2.  // 动态切换到关联模型类 并传入data属性
  3. $advUser = $User->switchModel("Relation");
  4.  // 或者在切换模型后再动态赋值给新的模型
  5. $advUser->setProperty("_link",$link);
  6.  // 查找关联数据
  7. $user = $advUser->relation(true)->find(1);