tp框架配置路由的初学习

27 篇文章 0 订阅
10 篇文章 0 订阅

路由定义在route目录下的route.php中。

最普通的路由——

路由到模块\控制器\方法

//路由到模块/控制器/操作
Route::rule('demo1','index/test/demo1')//rule方法将原有的地址路径映射到rule中,此时原本的路径失效
        ->method('get');//method用于设置请求方法

路由到一个闭包函数的写法

//路由到一个闭包函数
Route::rule('demo2',function (){
    return 'tp框架';
})->method('get');//可以使用rule方法将一个闭包函数映射到rule上

如何开启强制路由

QQ浏览器截图20190401194944.png

当开启强制路由时,就必须定义首页的路由规则,之后所有的路径都需要定义路由规则

//若开启了强制路由,首页也要定义路由规则
Route::rule('/','index/index/index')
        ->method('get');

当控制器中涉及变量参数时,则需要使用路由变量

其中涉及了对url的参数的解析方式的配置QQ浏览器截图20190401195630.png

在配置路由时参数的写法——在rule中填写参数时需要在变量名前加’:‘,添加方括号代表该变量为可选变量

路由变量
Route::rule('route1/:name/[:course]/[:grade]','index/test/route1')
        ->method('get');//在rule中填写参数时需要在变量名前加:,添加方括号代表该变量为可选变量

在路由中可以自定义路由表达式的分隔符

//自定义路由表达式的分隔符
Route::rule('route1-:name-[:course]-[:grade]','index/test/route1')
     ->method('get');//用'-'代替'/'

对路由变量中的变量进行约束与验证

使用框架中Route类提供的pattern方法实现对路由变量的约束与验证(支持数组形式)

//对路由变量中的变量进行约束与验证
Route::rule('route1-<name>-<course?>-<grade?>','index/test/route1')
    ->method('get')
    ->pattern(['name'=>'[a-zA-Z]+','course'=>'[a-zA-z]+','grade'=>'[0-9]+']);//'/d'可代替[0-9']
    //pattern方法可对路由变量进行约束与验证

路由参数

常用的几个参数——ext:URL后缀检测,支持匹配多个后缀,匹配多个后缀时需要使用"|"隔开

method——请求类型检测,支持多个请求类型

ajax——Ajax检测

更多的路由参数详见tp5.1的手册

代码示例

//路由参数
Route::rule('route2','index/test/route2')
    ->method('get')
    ->ext('html|shtml|png');//URL后缀检测,exc方法支持同时设置多个后缀,使用'|'隔开,也可使用链式调用,设置为空后表示不允许添加URL后缀

URL生成

使用URL类中的build方法

控制器中的方法

//URL生成
public function route3(){
    $url = Url::build('index/test/route1',['name'=>'zhu','course'=>'java','grade'=>'98']);
    $url = Url::build('index/route1/zhu/java/98');//URL的build方法也可以构造路由地址
    dump($url);
}

路由配置的部分

QQ浏览器截图20190401202042.png

注:若使用想省去tp框架中index模块的php后缀许要进行以下操作

找到public目录下的static目录下的apache配置文件

QQ浏览器截图20190401202625.png

在index.php后添加'?'

QQ浏览器截图20190401202802.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值