thinkphp5第37课:自定义路由

使用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>
发布了136 篇原创文章 · 获赞 43 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lsmxx/article/details/103022859