时间:2021-05-26
本文实例讲述了thinkphp框架实现路由重定义简化url访问地址的方法。分享给大家供大家参考,具体如下:
如果按照正常访问的话,则需要输入一长串的url地址,这样会显得十分冗长,我可以可以通过对路由规则的重新定义简化url访问地址。
<?phpnamespace app\index\controller;class Index{ public function index(){ return '我是index'; } public function hello($name='World'){ return 'Hello'.$name.'!'; }}?>本来的访问路径应该是:
localhost/tp/index.php/index/index/hello
我们在路由定义文件(application/route.php)里面添加一些路由规则,如下:
return [ // 添加路由规则 路由到 index控制器的hello操作方法' hello/:name' => 'index/index/hello',];这是以hello开头的并且带参数的访问都会路由到index控制器的hello操作方法。
此时路径可以写为:
localhost/tp/hello/Thinkphp
此时输出结果为:
HelloThinkphp!
改变路由规则后若使用原来的路径访问方法后,则会出现错误。
但此时有一个问题是,如果访问地址为:
localhost/tp/hello
话,会抛出 模板不存在的错误,因为在访问时,没有传参,而在定义路由规则时,则带有参数。
解决办法是在修改路由规则为:
return [ // 添加路由规则 路由到 index控制器的hello操作方法' hello/[:name'] => 'index/index/hello',];使用[]把路由规则中的变量包起来,就表示该变量为可选,接下来就可以正常访问了。
当name参数没有传入值的时候,hello方法的name参数有默认值World,所以输出的内容为
Hello,World!
除了路由配置文件中定义之外,还可以采用动态定义路由规则的方式定义,例如在路由配置文件(application/route.php)的开头直接添加下面的方法:
use think\Route; Route::rule('hello/:name', 'index/hello');完成的效果和使用配置方式定义是一样的。
无论是配置方式还是通过Route类的方法定义路由,都统一放到路由配置文件application/route.php文件中
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了thinkPHP5.0框架URL访问方法。分享给大家供大家参考,具体如下:URL设计ThinkPHP5.0在没有启用路由的情况下典型的URL访问规
本文实例讲述了让thinkphp支持大小写url地址访问的方法。分享给大家供大家参考。具体实现方法如下:通常ThinkPHP默认是区别大小写url的,这种也是与
一、实现方法1.纯模板语言实现2.自定义simpletag实现(本质是简化了纯模板语言的判断)二、基本原理原理都是通过django路由系统,匹配url筛选条件,
大家好,我是Yangrl.路由在框架中的作用打个比方的话,路由好比是WEB应用的总调度室,对于访问的URL地址,路由可以拒绝或者接受某个URL请求,并进行分发调
本文实例讲述了thinkphp5框架路由原理与用法。分享给大家供大家参考,具体如下:路由理解概括的说:路由就是网络请求的url与thinkphp应用层的逻辑处理