## è·¯ç±åæ°
è·¯ç±åç»åè§åå®ä¹æ¯ææå®è·¯ç±åæ°ï¼è¿äºåæ°ä¸»è¦å®æè·¯ç±å¹é
æ£æµä»¥ååç»è¡ä¸ºã
>[danger] è·¯ç±åæ°å¯ä»¥å¨å®ä¹è·¯ç±è§åçæ¶åç´æ¥ä¼ å
¥ï¼æ¹éï¼ï¼æ¨è使ç¨æ¹æ³é
ç½®æ´å æ¸
æ°ã
|åæ°|说æ|æ¹æ³å|
|---|---|---|
|ext|URLåç¼æ£æµï¼æ¯æå¹é
å¤ä¸ªåç¼|ext|
|deny_ext|URLç¦æ¢åç¼æ£æµï¼æ¯æå¹é
å¤ä¸ªåç¼|denyExt|
|https|æ£æµæ¯å¦https请æ±|https|
|domain|ååæ£æµ|domain|
|complete_match|æ¯å¦å®æ´å¹é
è·¯ç±|completeMatch|
|model|ç»å®æ¨¡å|model|
|cache|请æ±ç¼å|cache|
|ajax|Ajaxæ£æµ|ajax|
|pjax|Pjaxæ£æµ|pjax|
|json|JSONæ£æµ|json|
|validate|ç»å®éªè¯å¨ç±»è¿è¡æ°æ®éªè¯|validate|
|append|追å é¢å¤çåæ°|append|
|middleware|注åè·¯ç±ä¸é´ä»¶|middleware|
|filter|请æ±åéè¿æ»¤|filter|
ç¨æ³ä¸¾ä¾ï¼
~~~
Route::get('new/:id', 'News/read')
->ext('html')
->https();
~~~
> è¿äºè·¯ç±åæ°å¯ä»¥æ··å使ç¨ï¼åªè¦æä»»ä½ä¸æ¡åæ°æ£æ¥ä¸éè¿ï¼å½åè·¯ç±å°±ä¸ä¼çæï¼ç»§ç»æ£æµåé¢çè·¯ç±è§åã
å¦æä½ éè¦æ¹é设置路ç±åæ°ï¼ä¹å¯ä»¥ä½¿ç¨`option`æ¹æ³ã
~~~
Route::get('new/:id', 'News/read')
->option([
'ext' => 'html',
'https' => true
]);
~~~
### URLåç¼
>[danger] URLåç¼å¦ææ¯å
¨å±ç»ä¸çè¯ï¼å¯ä»¥å¨è·¯ç±é
ç½®æ件ä¸è®¾ç½®`url_html_suffix`åæ°ï¼å¦æå½å访é®çURLå°åä¸çURLåç¼æ¯å
许ç伪éæåç¼ï¼é£ä¹åç¼æ¬èº«æ¯ä¸ä¼è¢«ä½ä¸ºåæ°å¼ä¼ å
¥çã
ä¸ååæ°è®¾ç½®çåºå«å¦ä¸ï¼
é
ç½®å¼|æè¿°
---|---|---
`false`|ç¦æ¢ä¼ªéæ访é®
空å符串|å
许任æ伪éæåç¼
`html`|åªå
许设置ç伪éæåç¼
`html|htm`|å
许å¤ä¸ªä¼ªéæåç¼
~~~
// å®ä¹GET请æ±è·¯ç±è§å 并设置URLåç¼ä¸ºhtmlçæ¶åææ
Route::get('new/:id', 'News/read')
->ext('html');
~~~
æ¯æå¹é
å¤ä¸ªåç¼ï¼ä¾å¦ï¼
~~~php
Route::get('new/:id', 'News/read')
->ext('shtml|html');
~~~
> å¦æ`ext`æ¹æ³ä¸ä¼ å
¥ä»»ä½å¼ï¼è¡¨ç¤ºä¸å
许使ç¨ä»»ä½åç¼è®¿é®ã
å¯ä»¥è®¾ç½®ç¦æ¢è®¿é®çURLåç¼ï¼ä¾å¦ï¼
~~~
// å®ä¹GET请æ±è·¯ç±è§å 并设置ç¦æ¢URLåç¼ä¸ºpngãjpgågifç访é®
Route::get('new/:id', 'News/read')
->denyExt('jpg|png|gif');
~~~
> å¦æ`denyExt`æ¹æ³ä¸ä¼ å
¥ä»»ä½å¼ï¼è¡¨ç¤ºå¿
须使ç¨åç¼è®¿é®ã
### ååæ£æµ
æ¯æ使ç¨å®æ´ååæè
åååè¿è¡æ£æµï¼ä¾å¦ï¼
~~~
// å®æ´ååæ£æµ åªå¨news.thinkphp.cn访é®æ¶è·¯ç±ææ
Route::get('new/:id', 'News/read')
->domain('news.thinkphp.cn');
// åååæ£æµ
Route::get('new/:id', 'News/read')
->domain('news');
~~~
> å¦æéè¦ç»åååå®ä¹æ¹éçè·¯ç±è§åï¼å»ºè®®ä½¿ç¨`domain`æ¹æ³è¿è¡è·¯ç±å®ä¹ã
### `HTTPS`æ£æµ
æ¯ææ£æµå½åæ¯å¦`HTTPS`访é®
~~~
// å¿
须使ç¨HTTPS访é®
Route::get('new/:id', 'News/read')
->https();
~~~
### `AJAX`/`PJAX`/`JSON`æ£æµ
å¯ä»¥æ£æµå½åæ¯å¦ä¸º`AJAX`/`PJAX`/`JSON`请æ±ã
~~~
// å¿
é¡»æ¯JSON请æ±è®¿é®
Route::get('new/:id', 'News/read')
->json();
~~~
### 请æ±åéæ£æµ
å¯ä»¥å¨å¹é
è·¯ç±å°åä¹å¤ï¼é¢å¤æ£æ¥è¯·æ±åéæ¯å¦å¹é
ï¼åªææå®ç请æ±åéä¹ä¸è´çæ
åµä¸æè½å¹é
该路ç±ã
~~~
// æ£æ¥typeåé
Route::post('new/:id', 'News/save')
->filter('type', 1);
// æ£æ¥å¤ä¸ªè¯·æ±åé
Route::post('new/:id', 'News/save')
->filter([ 'type' => 1,'status'=> 1 ]);
~~~
### 追å é¢å¤åæ°
å¯ä»¥å¨å®ä¹è·¯ç±çæ¶åéå¼è¿½å é¢å¤çåæ°ï¼è¿äºåæ°ä¸ä¼åºç°å¨URLå°åä¸ã
~~~php
Route::get('blog/:id', 'Blog/read')
->append(['app_id' => 1, 'status' => 1]);
~~~
å¨è·¯ç±è¯·æ±çæ¶åä¼åæ¶ä¼ å
¥`app_id`å`status`两个åæ°ã
### è·¯ç±ç»å®æ¨¡å
è·¯ç±è§åååç»æ¯æç»å®æ¨¡åæ°æ®ï¼ä¾å¦ï¼
~~~php
Route::get('hello/:id', 'index/hello')
->model('id', '\app\index\model\User');
~~~
ä¼èªå¨ç»å½åè·¯ç±ç»å® `id`为 å½åè·¯ç±åéå¼ç`User`模åæ°æ®ã
å¦æä½ ç模åç»å®ä½¿ç¨çæ¯`id`ä½ä¸ºæ¥è¯¢æ¡ä»¶çè¯ï¼è¿å¯ä»¥ç®åæä¸é¢çæ¹å¼
~~~php
Route::get('hello/:id', 'index/hello')
->model('\app\index\model\User');
~~~
é»è®¤æ
åµä¸ï¼å¦æ没ææ¥è¯¢å°æ¨¡åæ°æ®ï¼åä¼æåºå¼å¸¸ï¼å¦æä¸å¸ææåºå¼å¸¸ï¼å¯ä»¥ä½¿ç¨
~~~php
Route::rule('hello/:id', 'index/hello')
->model('id', '\app\index\model\User', false);
~~~
å¯ä»¥å®ä¹æ¨¡åæ°æ®çæ¥è¯¢æ¡ä»¶ï¼ä¾å¦ï¼
~~~
Route::rule('hello/:name/:id', 'index/hello')
->model('id&name', '\app\index\model\User');
~~~
表示æ¥è¯¢`id`å`name`çå¼çäºå½åè·¯ç±åéç模åæ°æ®ã
ä¹å¯ä»¥ä½¿ç¨éå
æ¥èªå®ä¹è¿åéè¦ç模å对象
~~~
Route::rule('hello/:id', 'index/hello')
->model(function ($id) {
$model = new \app\index\model\User;
return $model->where('id', $id)->find();
});
~~~
éå
å½æ°çåæ°å°±æ¯å½å请æ±çURLåéä¿¡æ¯ã
> ç»å®ç模åå¯ä»¥ç´æ¥å¨æ§å¶å¨çæ¶ææ¹æ³æè
æä½æ¹æ³ä¸èªå¨æ³¨å
¥ï¼å
·ä½å¯ä»¥åè请æ±ç« èçä¾èµæ³¨å
¥ã
## 请æ±ç¼å
å¯ä»¥å¯¹å½åçè·¯ç±è¯·æ±è¿è¡è¯·æ±ç¼åå¤çï¼ä¾å¦ï¼
~~~
Route::get('new/:name$', 'News/read')
->cache(3600);
~~~
表示对å½åè·¯ç±è¯·æ±ç¼å`3600`ç§ï¼æ´å¤å
容å¯ä»¥åè请æ±ç¼åä¸èã
## å¨æåæ°
å¦æä½ éè¦é¢å¤èªå®ä¹ä¸äºè·¯ç±åæ°ï¼å¯ä»¥ä½¿ç¨ä¸é¢çæ¹å¼ï¼
~~~
Route::get('new/:name$', 'News/read')
->option('rule','admin');
~~~
æè
使ç¨å¨ææ¹æ³
~~~
Route::get('new/:name$', 'News/read')
->rule('admin');
~~~
å¨åç»çè·¯ç±è¡ä¸ºåå¯ä»¥è°ç¨è¯¥è·¯ç±ç`rule`åæ°æ¥è¿è¡æéæ£æ¥ã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿