资源路由:
适用场景:当一个控制器内,有增、删、改、查等操作时,注册资源路由,定义到控制器,框架会自动注册相关的增、删、改、查等具体方法的路由。自动注册的方法具体有7个:
图片来自tp5手册
注册方法:
//引入系统路由类
use \think\Route;
//方式一,方法注册
Route::resource('blog','index/blog'); //index模块的blog方法
Route::resource('blog','index/blog',['var'=>['blog'=>'blog_id']]);//带参数
//方式二,配置文件注册
return [
// 定义资源路由
'__rest__'=>[
// 指向index模块的blog控制器
'blog'=>'index/blog',
],
// 定义普通路由
'hello/:id'=>'index/hello',
]
之后的url访问:
//具体访问哪一个方法,对照上面的图表,根据url、参数、请求类型决定
http://serverName/blog/ //对应blog中的index方法
http://serverName/blog/128 //对应blog中的read方法
http://serverName/blog/28/edit //对应blog中的edit方法
当你不太清楚某个方法的路由时,可以通过url方法,打印出该方法的路由
//引入Url方法
use think\Url;
//index模块、index控制器下 的func方法的路由
//方式1
Url::build('index/index/func');
//方式2
url('index/index/func');
//带参数模式
Url::build('index/index/func',['id'=>1,'name'=>'zhangsan']); //参数推荐数组格式
//带锚点模式
Url::build('index/index/func#maodian',['id'=>1,'name'=>'mvalue']); //#表示带锚点
//带域名模式
Url::build('index/index/func#maodian@yuming',['id'=>1,'maodian'=>'mvalue','yvalue']); //#表示带域名
通常情况下,打印出的url是不含入口文件的,如果把入口文件放入url中:
//引入Url方法
use think\Url;
//url中添加入口文件
Url::root('/index.php');