ThinkPHP设置路由-动态批量注册:
一、路由-动态批量注册
1、基本格式
Route::rule([
'路由规则1'=>'路由地址和参数',
'路由规则2'=>['路由地址和参数','匹配参数(数组)','变量规则(数组)']
],'','请求类型','匹配参数(数组)','变量规则');
2、使用
Route::rule([
"test"=>"index/index/test",
"course/:id"=>"index/index/course"
],'','get');
Route::get([
"test"=>"index/index/test",
"course/:id"=>"index/index/course"
]);
二、路由-配置文件批量注册
return [
"test"=>"index/index/test",
"course/:id"=>"index/index/course"
];
三、变量规则
// Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
// 设置路由参数id必须是数字,必须1-3位
Route::rule("course/:id","index/index/course",'get',[],['id'=>'\d{1,3}'])
四、路由参数
// Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
Route::rule("course/:id","index/index/course",'get',['method'=>'get','ext'=>'html'],['id'=>'\d{1,3}']);
// 路由参数method 请求方式必须是get
// 路由参数ext 主要设置路由的后缀
五、资源路由
1、声明
Route::resource('blog','index/blog');
2、会自动注册七个路由规则
get blog index # 后台展示
get blog/create create # 添加页面
post blog save # 增加操作
get blog/:id read
get blog/:id/edit edit # 修改页面
put blog/:id update # 更新操作
delete blog/:id delete # 删除操作
六、设置快捷路由
1、声明
Route::Controller('blog','index/blog');
2、控制器中
namespace app\index\controller;
class Blog{
public function getindex(){
echo "我是bolg控制器index方法";
}
public function geta(){
echo "AAAAAAAA";
}
}
3、URL访问
http://www.tp.com/blog/a
http://www.tp.com/blog/index
七、生成url地址
1、系统类
dump(Url::build('index/index/index'));
2、系统方法
dump(url('index/index/index'));
3、使用
// 普通url地址
dump(Url::build('index/index/index'));
dump(url('index/index/index'));
// 带参数url
dump(url('index/index/abc',['id'=>10,'name'=>"张三"]));
dump(url('index/index/abc','id=10&name=100'));
// string(45) "/index/abc/id/10/name/%E5%BC%A0%E4%B8%89.html"
// string(30) "/index/abc/id/10/name/100.html"
// 带锚点
dump(url('index/index/abc#name',['id'=>10,'name'=>"100"]));
// string(35) "/index/abc/id/10/name/100.html#name"
// 带域名
dump(url('index/index/abc#name@blog',['id'=>10,'name'=>"100"]));
// string(53) "http://blog.tp.com/index/abc/id/10/name/100.html#name"
// 加入口文件
Url::root('/index.php');
dump(url('index/index/abc#name@blog',['id'=>10,'name'=>"100"]));
// string(63) "http://blog.tp.com/index.php/index/abc/id/10/name/100.html#name"