thinkphp5的路由写法

收藏
1 2723
SuperMan   ❀
SuperMan ❀ 2017-08-18 16:33:59
付费话题:0 积分

大家都有上班时间,工作时间不可能一直有时间有心情盯着群内为大家一一解答

而且本人技术水平 也有限,有些问题还得跟大家学习。

所以再次呼吁大家提问请先行社区提问。


一直有人在问,简单剪切了一些过来说几句吧。

详情请参考:https://www.kancloud.cn/manual/thinkphp5/118029


路由使用请先行开启路由配置:

混合模式

开启路由,并使用路由定义+默认PATH_INFO方式的混合:

'url_route_on'  =>  true,'url_route_must'=>  false,

然后请先行进行一个简单的demo测试:

首页的路由规则采用/定义即可,例如下面把网站首页路由输出Hello,world!

Route::get('/',function(){    return 'Hello,world!';
});

动态注册

路由定义采用\think\Route类的rule方法注册,通常是在应用的路由配置文件application/route.php进行注册,格式是:

Route::rule(‘路由表达式’,‘路由地址’,‘请求类型’,‘路由参数(数组)’,‘变量规则(数组)’);

例如注册如下路由规则:

use think\Route;
// 注册路由到index模块的News控制器的read操作
Route::rule('new/:id','index/News/read');

我们访问:

http://serverName/new/5

ThinkPHP5.0的路由规则定义是从根目录开始,而不是基于模块名的。

会自动路由到:

http://serverName/index/news/read/id/5


其实我也不太会组织言语去说教,上一段本站的路由规则代码大家参考一下吧

// +----------------------------------------------------------------------
// | ITKEE [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017 http://www.itkee.cn.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: SuperMan <superman@itkee.cn>//前台路由
// +----------------------------------------------------------------------
use think\Route;

//首页模块
Route::group(['prefix'=>'index/index/','ext'=>'html'],function(){
    Route::get('/','/index');                   //站点首页
});

//开源下载模块
Route::group(['prefix'=>'index/download/','ext'=>'html'],function(){
    Route::get('download','index');                   //下载模块
});
//推荐资源下载
Route::get('recommend','index/recommend/index',['ext'=>'html']);  //下载模块

//内容模块
Route::group(['prefix'=>'index/topic/','ext'=>'html'],function(){
    Route::get('topic','index');                                //社区首页
    Route::get('topic-list','topic_list');                      //话题列表
    Route::get('topic-info-<id>','detail');                        //话题详情
},[],['id'=>'\d+']);


评论话题
提交