## è·¯ç±å°å
è·¯ç±å°å表示å®ä¹çè·¯ç±è¡¨è¾¾å¼æç»éè¦è·¯ç±å°çå®é
å°åï¼æè
ååºå¯¹è±¡ï¼ä»¥åä¸äºéè¦çé¢å¤åæ°ï¼æ¯æä¸é¢å ç§æ¹å¼å®ä¹ï¼
## è·¯ç±å°æ§å¶å¨/æä½
è¿æ¯æ常ç¨çä¸ç§è·¯ç±æ¹å¼ï¼æ满足æ¡ä»¶çè·¯ç±è§åè·¯ç±å°ç¸å
³çæ§å¶å¨åæä½ï¼ç¶åç±ç³»ç»è°åº¦æ§è¡ç¸å
³çæä½ï¼æ ¼å¼ä¸ºï¼
>[info] ### æ§å¶å¨/æä½
解æè§åæ¯ä»æä½å¼å§è§£æï¼ç¶å解ææ§å¶å¨ï¼ä¾å¦ï¼
~~~
// è·¯ç±å°blogæ§å¶å¨
Route::get('blog/:id','Blog/read');
~~~
Blogç±»å®ä¹å¦ä¸ï¼
~~~
<?php
namespace app\index\controller;
class Blog
{
public function read($id)
{
return 'read:' . $id;
}
}
~~~
è·¯ç±å°åä¸æ¯æå¤çº§æ§å¶å¨ï¼ä½¿ç¨ä¸é¢çæ¹å¼è¿è¡è®¾ç½®ï¼
~~~php
Route::get('blog/:id','group.Blog/read');
~~~
表示路ç±å°ä¸é¢çæ§å¶å¨ç±»ï¼
~~~
index/controller/group/Blog
~~~
è¿å¯ä»¥æ¯æè·¯ç±å°å¨æçåºç¨ãæ§å¶å¨æè
æä½ï¼ä¾å¦ï¼
~~~
// actionåéçå¼ä½ä¸ºæä½æ¹æ³ä¼ å
¥
Route::get(':action/blog/:id', 'Blog/:action');
~~~
## è·¯ç±å°ç±»çæ¹æ³
è¿ç§æ¹å¼çè·¯ç±å¯ä»¥æ¯ææ§è¡ä»»ä½ç±»çæ¹æ³ï¼èä¸å±éäºæ§è¡æ§å¶å¨çæä½æ¹æ³ã
è·¯ç±å°åçæ ¼å¼ä¸ºï¼å¨ææ¹æ³ï¼ï¼
>[info] ### \å®æ´ç±»å@æ¹æ³å
æè
ï¼éææ¹æ³ï¼
>[info] ### \\å®æ´ç±»å::æ¹æ³å
ä¾å¦ï¼
~~~
Route::get('blog/:id','\app\index\service\Blog@read');
~~~
æ§è¡çæ¯ `\app\index\service\Blog`ç±»ç`read`æ¹æ³ã
ä¹æ¯ææ§è¡æ个éææ¹æ³ï¼ä¾å¦ï¼
~~~
Route::get('blog/:id','\app\index\service\Blog::read');
~~~
## éå®åè·¯ç±
å¯ä»¥ç´æ¥ä½¿ç¨`redirect`æ¹æ³æ³¨åä¸ä¸ªéå®åè·¯ç±
~~~
Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);
~~~
## è·¯ç±å°æ¨¡æ¿
æ¯æè·¯ç±ç´æ¥æ¸²æ模æ¿è¾åºã
~~~
// è·¯ç±å°æ¨¡æ¿æ件
Route::view('hello/:name', 'index/hello');
~~~
表示该路ç±ä¼æ¸²æå½ååºç¨ä¸é¢ç`view/index/hello.html`模æ¿æ件è¾åºã
模æ¿æ件ä¸å¯ä»¥ç´æ¥è¾åºå½å请æ±ç`param`åéï¼å¦æéè¦å¢å é¢å¤ç模æ¿åéï¼å¯ä»¥ä½¿ç¨ï¼
~~~
Route::view('hello/:name', 'index/hello', ['city'=>'shanghai']);
~~~
å¨æ¨¡æ¿ä¸å¯ä»¥è¾åº`name`å`city`两个åéã
~~~
Hello,{$name}--{$city}ï¼
~~~
## è·¯ç±å°éå
æ们å¯ä»¥ä½¿ç¨éå
çæ¹å¼å®ä¹ä¸äºç¹æ®éæ±çè·¯ç±ï¼èä¸éè¦æ§è¡æ§å¶å¨çæä½æ¹æ³äºï¼ä¾å¦ï¼
~~~
Route::get('hello', function () {
return 'hello,world!';
});
~~~
å¯ä»¥éè¿éå
çæ¹å¼æ¯æè·¯ç±èªå®ä¹ååºè¾åºï¼ä¾å¦ï¼
~~~
Route::get('hello/:name', function () {
response()->data('Hello,ThinkPHP')
->code(200)
->contentType('text/plain');
});
~~~
### åæ°ä¼ é
éå
å®ä¹çæ¶åæ¯æåæ°ä¼ éï¼ä¾å¦ï¼
~~~
Route::get('hello/:name', function ($name) {
return 'Hello,' . $name;
});
~~~
è§åè·¯ç±ä¸å®ä¹çå¨æåéçå称 å°±æ¯éå
å½æ°ä¸çåæ°å称ï¼ä¸å次åºã
å æ¤ï¼å¦ææ们访é®çURLå°åæ¯ï¼
~~~
http://serverName/hello/thinkphp
~~~
åæµè§å¨è¾åºçç»ææ¯ï¼
~~~
Hello,thinkphp
~~~
### ä¾èµæ³¨å
¥
å¯ä»¥å¨éå
ä¸ä½¿ç¨ä¾èµæ³¨å
¥ï¼ä¾å¦ï¼
~~~
Route::rule('hello/:name', function (Request $request, $name) {
$method = $request->method();
return '[' . $method . '] Hello,' . $name;
});
~~~
## è·¯ç±å°è°åº¦å¯¹è±¡ï¼`V6.0.3+`ï¼
`V6.0.3+`çæ¬å¼å§ï¼å¯ä»¥æ¯æè·¯ç±å°ä¸ä¸ªèªå®ä¹çè·¯ç±è°åº¦å¯¹è±¡ã
~~~
// è·¯ç±å°èªå®ä¹è°åº¦å¯¹è±¡
Route::get('blog/:id',\app\route\BlogDispatch::class);
~~~
```
namespace app\route;
use think\route\Dispatch;
use think\route\Rule;
use think\Request;
class BlogDispatch extends Dispatch
{
public function exec()
{
// èªå®ä¹è·¯ç±è°åº¦
}
}
```
å
·ä½è°åº¦ç±»çå®ç°å¯ä»¥åèå
ç½®çå 个è°åº¦ç±»çå®ç°ã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿