thinkphp5.1链式操作cache缓存
web ThinkPHP5.1 2019-01-10 2138 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6283955 2594 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)
<?php
namespace app\index\model;
use think\Model;
use think\Db;

class Articles extends Model {
	/**
	 * 链式操作-cache方法用于查询缓存操作,也是连贯操作方法之一。
	 * cache可以用于select、find、value和column方法,以及其衍生方法,使用cache方法后,在缓存有效期之内不会再次进行数据库查询操作,而是直接获取缓存中的数据,关于数据缓存的类型和设置可以参考缓存部分。
	 */
	public function cache(){		
		$rs = Db::table('zht_articles')
			->where('articleId',10)
			->field('articleId,articleTitle')
			->cache(true)
			->find();
		// 默认情况下, 缓存有效期是由默认的缓存配置参数决定的,但cache方法可以单独指定-表示对查询结果的缓存有效期60秒。
		$rs = Db::table('zht_articles')
			->where('articleId',11)
			->field('articleId,articleTitle')
			->cache(true,60)
			->find();
		// 或者使用下面的方式 是等效的
		$rs = Db::table('zht_articles')
			->where('articleId',12)
			->field('articleId,articleTitle')
			->cache(60)
			->find();
		// cache方法可以指定缓存标识:指定查询缓存的标识可以使得查询缓存更有效率。
		$rs = Db::table('zht_articles')
			->where('articleId',13)
			->field('articleId,articleTitle')
			->cache('key',60)
			->find();
		//$data = \think\Cache::get('key'); //提示错误,不知道什么问题
		// cache方法支持设置缓存标签
		$rs = Db::table('zht_articles')
			->where('articleId',16)
			->field('articleId,articleTitle')
			->cache('keyy',60,'tagName')
			->find();
		// 缓存自动更新-当你删除或者更新数据的时候,可以调用相同key的cache方法,会自动更新(清除)缓存.最后查询的数据不会受第一条查询缓存的影响,确保查询和更新或者删除使用相同的缓存标识才能自动清除缓存。
		$rs = Db::table('zht_articles')
			->field('articleId,articleTitle')
			->cache('user_data')
			->select([5,6,7]);
		$rs = Db::table('zht_articles')
			->field('articleId,articleTitle')
			->cache('user_data')
			->update(['articleId'=>5,'articleTitle'=>'张三李四']);
		$rs = Db::table('zht_articles')
			->field('articleId,articleTitle')
			->cache('user_data')
			->select([5,7]);
		// 如果使用find方法并且使用主键查询的情况,不需要指定缓存标识,会自动清理缓存
		$rs = Db::table('zht_articles')
			->field('articleId,articleTitle')
			->cache(true)
			->find(5);
		$rs = Db::table('zht_articles')
			->field('articleId,articleTitle')
			->cache(true)
			->update(['articleId'=>5,'articleTitle'=>'张三李四adfad']);
		$rs = Db::table('zht_articles')
			->field('articleId,articleTitle')
			->cache(true)
			->find(5);
		echo Db::getlastsql();
		dump($rs);
		exit;
		return $rs;
	}	
	
}



20190320


针对35行的问题,

//$data = \think\Cache::get('key'); //提示错误,不知道什么问题

修改

需要引入

use think\facade\Cache;

调用的时候用

$data = Cache::get('key');

就可以正常了

版权声明:本篇文章来源于网络。 来源链接

相关推荐
Non-static method think\Config::get() should not be called statically
ThinkPHP5.1 | 2018-12-29 10328
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 10190
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论