鍍金池/ 問(wèn)答/PHP  Linux/ Thinkphp 路由匹配問(wèn)題

Thinkphp 路由匹配問(wèn)題

Route::post('xdk/plan','xdk/plan/save');
Route::post('xdk/plan/:id/fav','xdk/plan/fav');
Route::post('xdk/plan/:id/comments','xdk/plan/comments'); //推薦

就是想構(gòu)建一個(gè)restful風(fēng)格的api
/xdk/plan 發(fā)布
/xdk/plan/:id/fav 點(diǎn)贊
/xdk/plan/:id/comments 評(píng)論

/xdl/plan/2/fav 為什么匹配到第一個(gè)發(fā)布路由里面去了呢?

回答
編輯回答
喜歡你

Thinkphp5的路由是從上往下逐個(gè)匹配,路由的第四個(gè)參數(shù),就可以用來(lái)匹配正則表達(dá)式。

2017年3月9日 19:03
編輯回答
傻叼

配置文件中有一個(gè)完全匹配

 // 路由是否完全匹配
    'route_complete_match'   => true,
2018年4月18日 14:13
編輯回答
伴謊
Route::post('xdk/plan$','xdk/plan/save');
Route::post('xdk/plan/:id/fav$','xdk/plan/fav');
Route::post('xdk/plan/:id/comments$','xdk/plan/comments'); //推薦

首先你可以在每個(gè)路由結(jié)尾加個(gè) $ 進(jìn)行完全匹配,避免你這種情況的發(fā)生,
其次,tp5自帶支持RESTFul的路由功能,只需要

Route::resource('xdk/plan','xdk/plan');

就可以實(shí)現(xiàn)資源路由,具體內(nèi)容見(jiàn)官方文檔:tp資源路由

2017年9月16日 00:48