## å页å®ç°
`ThinkPHP`å
ç½®äºå页å®ç°ï¼è¦ç»æ°æ®æ·»å å页è¾åºåè½åå¾é常ç®åï¼å¯ä»¥ç´æ¥å¨`Db`ç±»æ¥è¯¢çæ¶åè°ç¨`paginate`æ¹æ³ï¼
~~~
// æ¥è¯¢ç¶æ为1çç¨æ·æ°æ® 并ä¸æ¯é¡µæ¾ç¤º10æ¡æ°æ®
$list = Db::name('user')->where('status',1)->order('id', 'desc')->paginate(10);
// 渲æ模æ¿è¾åº
return view('index', ['list' => $list]);
~~~
模æ¿æ件ä¸å页è¾åºä»£ç å¦ä¸ï¼
~~~html
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list|raw}
~~~
ä¹å¯ä»¥åç¬èµå¼å页è¾åºç模æ¿åé
~~~
// æ¥è¯¢ç¶æ为1çç¨æ·æ°æ® 并ä¸æ¯é¡µæ¾ç¤º10æ¡æ°æ®
$list = Db::name('user')->where('status',1)->order('id', 'desc')->paginate(10);
// è·åå页æ¾ç¤º
$page = $list->render();
return view('index', ['list' => $list, 'page' => $page]);
~~~
模æ¿æ件ä¸å页è¾åºä»£ç å¦ä¸ï¼
~~~html
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$page|raw}
~~~
é»è®¤æ
åµä¸ï¼çæçå页è¾åºæ¯å®æ´å页åè½ï¼å¸¦æ»å页æ°æ®åä¸ä¸é¡µç ï¼åé¡µæ ·å¼åªéè¦éè¿æ ·å¼ä¿®æ¹å³å¯ï¼å®æ´å页é»è®¤çæçå页è¾åºä»£ç 为ï¼
~~~
<ul class="pagination">
<li><a href="?page=1">«</a></li>
<li><a href="?page=1">1</a></li>
<li class="active"><span>2</span></li>
<li class="disabled"><span>»</span></li>
</ul>
~~~
å¦æä½ éè¦åç¬è·åæ»çæ°æ®ï¼å¯ä»¥ä½¿ç¨
~~~
// æ¥è¯¢ç¶æ为1çç¨æ·æ°æ® 并ä¸æ¯é¡µæ¾ç¤º10æ¡æ°æ®
$list = Db::name('user')->where('status',1)->order('id' ,'desc')->paginate(10);
// è·åæ»è®°å½æ°
$count = $list->total();
return view('index', ['list' => $list, 'count' => $count]);
~~~
### ä¼ å
¥æ»è®°å½æ°
æ¯æä¼ å
¥æ»è®°å½æ°èä¸ä¼èªå¨è¿è¡æ»æ°è®¡ç®ï¼ä¾å¦ï¼
~~~
// æ¥è¯¢ç¶æ为1çç¨æ·æ°æ® 并ä¸æ¯é¡µæ¾ç¤º10æ¡æ°æ® æ»è®°å½æ°ä¸º1000
$list = Db::name('user')->where('status',1)->paginate(10,1000);
// è·åå页æ¾ç¤º
$page = $list->render();
return view('index', ['list' => $list, 'page' => $page]);
~~~
>[danger] 对äº`UNION`æ¥è¯¢ä»¥åä¸äºç¹æ®çå¤ææ¥è¯¢ï¼æ¨è使ç¨è¿ç§æ¹å¼é¦å
åç¬æ¥è¯¢æ»è®°å½æ°ï¼ç¶ååä¼ å
¥å页æ¹æ³
### å页åæ°æ®å¤ç
æ¯æå页类åæ°æ®ç´æ¥`each`éåå¤çï¼æ¹ä¾¿ä¿®æ¹å页åçæ°æ®ï¼èä¸æ¯åªè½éè¿æ¨¡åçè·åå¨æ¥è¡¥å
å段ã
~~~
$list = Db::name('user')->where('status',1)->order('id', 'desc')->paginate()->each(function($item, $key){
$item['nickname'] = 'think';
return $item;
});
~~~
å¦ææ¯æ¨¡åç±»æä½å页æ°æ®çè¯ï¼`each`æ¹æ³çéå
å½æ°ä¸ä¸éè¦ä½¿ç¨è¿åå¼ï¼ä¾å¦ï¼
~~~
$list = User::where('status',1)->order('id', 'desc')->paginate()->each(function($item, $key){
$item->nickname = 'think';
});
~~~
## ç®æ´å页
å¦æä½ ä»
ä»
éè¦è¾åºä¸ä¸ª ä»
ä»
åªæä¸ä¸é¡µçå页è¾åºï¼å¯ä»¥ä½¿ç¨ä¸é¢çç®æ´å页代ç ï¼
~~~
// æ¥è¯¢ç¶æ为1çç¨æ·æ°æ® 并ä¸æ¯é¡µæ¾ç¤º10æ¡æ°æ®
$list = Db::name('user')->where('status',1)->order('id', 'desc')->paginate(10, true);
// 渲æ模æ¿è¾åº
return view('index', ['list' => $list]);
~~~
ç®æ´å页模å¼çè¾åºä»£ç 为ï¼
~~~
<ul class="pager">
<li><a href="?page=1">«</a></li>
<li class="disabled"><span>»</span></li>
</ul>
~~~
> ç±äºç®æ´å页模å¼ä¸éè¦æ¥è¯¢æ»æ°æ®æ°ï¼å æ¤å¯ä»¥æé«æ¥è¯¢æ§è½ã
## å页åæ°
主è¦çå页åæ°å¦ä¸ï¼
|åæ°|æè¿°|
|---|---|
|list_rows|æ¯é¡µæ°é|
|page|å½å页|
| path|urlè·¯å¾|
| query|urlé¢å¤åæ°|
|fragment|urléç¹|
|var_page|å页åé|
å页åæ°ç设置å¯ä»¥å¨è°ç¨å页æ¹æ³çæ¶åä¼ å
¥ï¼ä¾å¦ï¼
~~~
$list = Db::name('user')->where('status',1)->paginate([
'list_rows'=> 20,
'var_page' => 'page',
]);
~~~
>[danger] å¦æéè¦å¨å页çæ¶åä¼ å
¥æ¥è¯¢æ¡ä»¶ï¼å¯ä»¥ä½¿ç¨`query`åæ°æ¼æ¥é¢å¤çæ¥è¯¢åæ°
## 大æ°æ®å页
对äºå¤§éæ°æ®çå页æ¥è¯¢ï¼ç³»ç»æä¾äºä¸ä¸ªé«æ§è½ç`paginateX`å页æ¥è¯¢æ¹æ³ï¼ç¨æ³å`paginate`å页æ¥è¯¢åå¨ä¸å®åºå«ãå¦æä½ è¦å页æ¥è¯¢çæ°æ®éå¨ç¾ä¸çº§ä»¥ä¸ï¼ä½¿ç¨`paginateX`æ¹æ³ä¼æææ¾çæåï¼å°¤å
¶æ¯å¨å页æ°è¾å¤§çæ
åµä¸ã并ä¸ç±äºé对大æ°æ®éè设计ï¼è¯¥å页æ¥è¯¢åªè½éç¨ç®æ´å页模å¼ï¼æ以没ææ»æ°ã
>[danger] å页æ¥è¯¢çæåºå段ä¸å®è¦ä½¿ç¨ç´¢å¼å段ï¼å¹¶ä¸æ¯è¿ç»çæ´åï¼å¦åä¼ææ°æ®éæ¼ã
主è¦åºæ¯æ¯é对主é®è¿è¡å页æ¥è¯¢ï¼é»è®¤ä½¿ç¨ä¸»é®ååºæ¥è¯¢å页æ°æ®ã
~~~
$list = Db::name('user')->where('status',1)->paginateX(20);
~~~
ä¹å¯ä»¥å¨æ¥è¯¢çæ¶åå¯ä»¥æå®ä¸»é®åæåº
~~~
$list = Db::name('user')->where('status',1)->paginateX(20, 'id', 'desc');
~~~
æ¥è¯¢æ¹æ³ä¼æ§è¡ä¸¤æ¬¡æ¥è¯¢ï¼ç¬¬ä¸æ¬¡æ¥è¯¢ç¨äºæ¥æ¾æ»¡è¶³å½åæ¥è¯¢æ¡ä»¶çæ大æè
æå°å¼ï¼ç¶åé
å主é®æ¥è¯¢æ¡ä»¶æ¥è¿è¡å页æ°æ®æ¥è¯¢ã
## èªå®ä¹å页类
å¦æä½ éè¦èªå®ä¹å页ï¼å¯ä»¥æ©å±ä¸ä¸ªå页驱å¨ã
ç¶åå¨`provider.php`å®ä¹æ件ä¸éæ°ç»å®
```
return [
'think\Paginator' => 'app\common\Bootstrap'
];
```
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- URL访é®
- 容å¨åä¾èµæ³¨å ¥
- æå¡
- é¨é¢
- ä¸é´ä»¶
- äºä»¶
- è·¯ç±
- è·¯ç±å®ä¹
- åéè§å
- è·¯ç±å°å
- è·¯ç±åæ°
- è·¯ç±ä¸é´ä»¶
- è·¯ç±åç»
- èµæºè·¯ç±
- 注解路ç±
- è·¯ç±ç»å®
- ååè·¯ç±
- MISSè·¯ç±
- è·¨å请æ±
- URLçæ
- æ§å¶å¨
- æ§å¶å¨å®ä¹
- åºç¡æ§å¶å¨
- 空æ§å¶å¨
- èµæºæ§å¶å¨
- æ§å¶å¨ä¸é´ä»¶
- 请æ±
- 请æ±å¯¹è±¡
- 请æ±ä¿¡æ¯
- è¾å ¥åé
- 请æ±ç±»å
- HTTP头信æ¯
- 伪éæ
- åæ°ç»å®
- 请æ±ç¼å
- ååº
- ååºè¾åº
- ååºåæ°
- éå®å
- æ件ä¸è½½
- æ°æ®åº
- è¿æ¥æ°æ®åº
- åå¸å¼æ°æ®åº
- æ¥è¯¢æé å¨
- æ¥è¯¢æ°æ®
- æ·»å æ°æ®
- æ´æ°æ°æ®
- å é¤æ°æ®
- æ¥è¯¢è¡¨è¾¾å¼
- é¾å¼æä½
- where
- table
- alias
- field
- strict
- limit
- page
- order
- group
- having
- join
- union
- distinct
- lock
- cache
- comment
- fetchSql
- force
- partition
- failException
- sequence
- replace
- extra
- duplicate
- procedure
- èåæ¥è¯¢
- å页æ¥è¯¢
- æ¶é´æ¥è¯¢
- é«çº§æ¥è¯¢
- è§å¾æ¥è¯¢
- JSONå段
- åæ¥è¯¢
- åçæ¥è¯¢
- æ¥è¯¢äºä»¶
- è·åå¨
- äºå¡æä½
- åå¨è¿ç¨
- æ°æ®é
- æ°æ®åºé©±å¨
- 模å
- å®ä¹
- 模åå段
- æ°å¢
- æ´æ°
- å é¤
- æ¥è¯¢
- æ¥è¯¢èå´
- JSONå段
- è·åå¨
- ä¿®æ¹å¨
- æç´¢å¨
- æ°æ®é
- èªå¨æ¶é´æ³
- åªè¯»å段
- 软å é¤
- ç±»å转æ¢
- 模åè¾åº
- 模åäºä»¶
- 模åå ³è
- ä¸å¯¹ä¸å ³è
- ä¸å¯¹å¤å ³è
- è¿ç¨ä¸å¯¹å¤
- è¿ç¨ä¸å¯¹ä¸
- å¤å¯¹å¤å ³è
- å¤æå ³è
- å ³èé¢è½½å ¥
- å ³èç»è®¡
- å ³èè¾åº
- è§å¾
- 模æ¿åé
- è§å¾è¿æ»¤
- 模æ¿æ¸²æ
- 模æ¿å¼æ
- è§å¾é©±å¨
- é误åæ¥å¿
- å¼å¸¸å¤ç
- æ¥å¿å¤ç
- è°è¯
- è°è¯æ¨¡å¼
- Traceè°è¯
- SQLè°è¯
- åéè°è¯
- è¿ç¨è°è¯
- éªè¯
- éªè¯å¨
- éªè¯è§å
- é误信æ¯
- éªè¯åºæ¯
- è·¯ç±éªè¯
- å ç½®è§å
- 表å令ç
- 注解éªè¯
- æ项
- ç¼å
- Session
- Cookie
- å¤è¯è¨
- ä¸ä¼
- å½ä»¤è¡
- å¯å¨å ç½®æå¡å¨
- æ¥ççæ¬
- èªå¨çæåºç¨ç®å½
- å建类åºæ件
- æ¸ é¤ç¼åæ件
- çææ°æ®è¡¨å段ç¼å
- çæè·¯ç±æ å°ç¼å
- è¾åºè·¯ç±å®ä¹
- èªå®ä¹æ令
- æ©å±åº
- æ°æ®åºè¿ç§»å·¥å ·
- Workerman
- thinkå©æå·¥å ·åº
- éªè¯ç
- Swoole
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿