thinkphp分頁資料查詢時(shí),如果設(shè)定了快取就只顯示第1頁,怎麼破?
即 12 >> 這個(gè)效果出來了,但是點(diǎn)選2,顯示的還是第1頁的內(nèi)容。
$count=M('visitdata')->where(array('works_code'=>$get_code))->count();
$Page=new \Think\Page($count,10);
$show=$Page->show();
S($get_code.'visitdata',null); //如果不先清空緩存,就只顯示第1頁……
// 進(jìn)行分頁數(shù)據(jù)查詢,如果這里設(shè)置了緩存,就只顯示第1頁
M('visitdata')->cache($get_code.'visitdata',60)->where(array('works_code'=>$get_code))->order('visit_id')->limit($Page->firstRow.','.$Page->listRows)->select();
$cache_visitdata=S($get_code.'visitdata');
$this->assign(array(
'code'=>$get_code,
'visitdata'=>$cache_visitdata
));
$this->assign('page',$show);
$this->display();
12 >> 這個(gè)效果出來了,但是點(diǎn)選2,顯示的還是第1頁的內(nèi)容。
請(qǐng)問怎麼破?
走同樣的路,發(fā)現(xiàn)不同的人生
這是tp3.2吧,長(zhǎng)時(shí)間不用都忘了怎麼用了,題主可以這樣:
取得頁碼
查看頁碼對(duì)應(yīng)的快取是否存在(快取key可以這樣寫:'content_page_' . $page
)
緩存存在就回傳
快取不存在則執(zhí)行資料庫查詢並快取一份,下次請(qǐng)求進(jìn)來的時(shí)候就直接走快取了
我覺得主要問題在於快取的key值上。
你這裡的:->cache($get_code.'visitdata',60)
中的$get_code.'visitdata'在分頁情況下是相同的,所以,不會(huì)更新。
你把頁碼包涵到這個(gè)key裡去應(yīng)該就可以了。