thinkphp6.0路由篇之注解路由和URL生成

一、注解路由

  1. 注解路由需要安装扩展 (安装扩展前先备份tp6文件)
  2. 进行扩展安装需要执行命令:
composer require topthink/think-annotation

3.安装好后,使用use引入相关类库

use think\annotation\Route;

4.然后再控制器设置注解代码即可,可以使用PHPDOC生成一段,然后添加路由规则
5、添加时必须使用双引号,单引号会报错

/**
 * @param $id 
 * * @return string 
 * * @route("details/:id"); 
 * */

6.第二或以上参数,可以设置请求类型,比如要求是GET模式访问

* @route("ds/:id", method="GET"

7.更多参数可实现更多功能(不需要考虑顺序),比如 ext、https 等

@route("ds/:id", method="GET", ext="html", https=1) //布尔值 0,1 代替

8.注解模式也支持资源路由,先要 use 相关类库,然后声明

use think\annotation\Route\Resource; 
/** 
* @Resource("blog") 
* */ 
* class Blog ...

9、注解模式也支持分组,先要use相关类库,然后声明:

use think\annotation\Route; 
use think\annotation\route\Group; 
* @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/[email protected]');

8、也可以直接使用助手函数 url()来代替 Route::buildUrl();

return url('ds/5');

你可能感兴趣的:(#,thinkphp6.0学习)