请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 4892|回复: 0

[数据模型] 数据函数复合调用

[复制链接]
发表于 2012-8-4 23:04:20 | 显示全部楼层 |阅读模式

在数据库操作中,我们经常用到spPager、spLinker、spCache和spVerifier四个spModel的附加类。这里我们就介绍一下这四个类之间的一些关系。



spPager和spLinker的连用——对分页结果进行关联

当需要对分页的结果进行关联查询的时候,就可以使用spPager + spLinker。

$model->spLinker()->spPager(1, 10)->findAll();

请注意顺序,是spLinker再到spPager,而反过来会报错的。

spCache不可以连用,但是可以对封装的函数进行缓存,达到更好的效果
spCache是对函数进行缓存的高效缓存程序。
1.首先是将分页的操作封装起来,在model的子类中封装,这里可以延伸到把其他的数据操作封装起来,比如说一个首页上要同时显示每一个文章分类前六条新文章记录的情况。
  1. class m_mydb extends spModel
  2. {   
  3.         ...
  4.         function getmypage($conditions, $page, $pageSize){
  5.            return $this->spPager($page, $pageSize)->findAll($conditions);
  6.         }
  7.         function getalltext($limit = 6){
  8.           ...  
  9.           return $data;
  10.         }
  11. }
复制代码
2. 在控制器内就可以使用:
  1. $this->result = spClass('mydb')->spCache(3600)->getmypage("", 1, 10);
  2. $this->pager = spClass('mydb')->spPager()->getPager(); // 由于getmypage内是用spPager来获取数据的,所以getPager同样可用,但是请注意缓存后的页码不一定正确。
  3. $this->alltext = spClass('mydb')->spCache(3600)-> getalltext();
复制代码

来进行调用了,这是减少数据库操作而增加程序运行速度的一个简单有效的方法。



spVerifier是验证数据,所以不能和其他三个类连用

和其他三个类不同,spVerifier仅作为验证数据,所以不需要连用。


您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-4-9 21:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表