一、注解路由
注解路由需要安装扩展 (安装扩展前先备份tp6文件)
进行扩展安装需要执行命令:
composer require topthink/think-annotation
3.安装好后,使用use引入相关类库
use thinkannotationRoute;
4.然后再控制器设置注解代码即可,可以使用PHPDOC生成一段,然后添加路由规则
5、添加时必须使用双引号,单引号会报错
/**
* @param $id
* * @return string
* * @route("details/:id");
* */
6.第二或以上参数,可以设置请求类型,比如要求是GET模式访问
* @route("ds/:id", method="GET"
1
7.更多参数可实现更多功能(不需要考虑顺序),比如 ext、https 等
@route("ds/:id", method="GET", ext="html", https=1) //布尔值 0,1 代替
1
8.注解模式也支持资源路由,先要 use 相关类库,然后声明
use thinkannotationRouteResource;
/**
* @Resource("blog")
* */
* class Blog ...
9、注解模式也支持分组,先要use相关类库,然后声明:
use thinkannotationRoute;
use thinkannotationrouteGroup;
* @Group("ads")
二、URL生成
1、首先创建一个新的控制器:Url.class,创建一个路由方法和Url生成的方法
2、然后,创建两个路由规则
Route::rule('ds', 'Url/index');
Route::rule('ds/:id', 'Url/details');
3、使用 Route::buildUrl(‘地址’, [参数]…)方式来获取路由的 URL 地址
return Route::buildUrl('Url/details', ['id'=>5]);
4、可以给路由取一个别名,在生产URL的时候,直接调用别名
//路由
Route::rule('ds/:id', 'Url/details')->name('u');
//控制器端
return Route::buildUrl('u', ['id'=>5]);
5、也可以直接使用路由地址生成 URL,但这个方式并不需要和路由定义相匹配;
return Route::buildUrl('ds/5');
6、默认在配置设置了后缀为.html,所以,生成的 URL 会自动加上;
return Route::buildUrl('ds/5')->suffix('shtml');
7、如果,你想添加完整域名路径,可以再添加 domain 方法
return Route::buildUrl('ds/5')->domain(true);
return Route::buildUrl('ds/5')->domain('news');
return Route::buildUrl('ds/5')->domain('news.abc.com');
return Route::buildUrl('ds/5@news.abc.com');
8、也可以直接使用助手函数 url()来代替 Route::buildUrl();
return url('ds/5');