使用tp5如果采用默认的路由方式,你就会发现访问XX模块XX控制器XX方法的URL地址有多长,比如:
http://serverName/index.php/module/controller/action/param/value/...
这样的模式称为:PATH_INFO 模式
开启自定义路由,需要配置config.php
'url_route_on' => true
打开config.php文件,会发现自定义路由默认是开启的。
自定义路由,最简单的方法就是直接在route.php文件中直接注册路由。route.php文件位于application目录下,打开该文件:
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------
return [
'__pattern__' => [
'name' => '\w+',
],
'[hello]' => [
':id' => ['index/hello', ['method' => 'get'], ['id' => '\d+']],
':name' => ['index/hello', ['method' => 'post']],
],
];
我们可以以数组的方式直接定义路由规则,数组默认的路由规则可以删除,编写我们自己的路由规则
<?php
return [
'admin$' => 'admin/index/index',
'personinfo' => 'admin/resume/personinfo',
'photo' => 'admin/resume/photo',
'works' => 'admin/works/index',
'skill' => 'admin/skill/index',
'grzp' => 'admin/grzp/index'
];
元素的“键”表示路由规则,“值”就是真实的地址,也就是说:当访问:http://域名/public/index.php/personinfo时,就是在访问http://域名/public/index.php/admin/resume/personinfo
定义好路由后,原来的访问地址也要改变:
<dl class="layui-nav-child">
<dd><a href="{:url('/personinfo')}" target="frame">基本信息</a></dd>
<dd><a href="{:url('/photo')}" target="frame">个人照片</a></dd>
<dd><a href="{:url('/works')}" target="frame">工作经历</a></dd>
<dd><a href="{:url('/skill')}" target="frame">专业技能</a></dd>
<dd><a href="{:url('/grzp')}" target="frame">个人作品</a></dd>
<dd><a href="">自我评价</a></dd>
</dl>