AI智能
改变未来

ThinkPHP6.0多应用模式路由


在TP6中如果采用了多应用模式,每个应用的路由定义和匹配都是独立的

应用路由都在

app/应用/route

目录下定义,应用路由定义文件示例如下:

app/index/route/web.phpapp/index/route/api.phpapp/admin/route/web.php

特别注意:好好体会这句话

应用的路由规则其实是定义的入口文件(或者应用名)后面的URL部分,而不包含应用。

控制器方法默认访问方式(pathinfo):/应用/控制器/方法

应用路由定义的只是应用后面的部分:也就是简化的是

控制器/方法

举例:应用路由只能定义应用名后面的部分,应用名未能做简化

创建文章控制器

<?phpnamespace app\\index\\controller;class Article{public function detail($id){return \'文章id: \' . $id;}}

创建index应用路由定义文件:

app/index/route/web.php

<?php// index应用路由定义文件use think\\facade\\Route;Route::get(\'art/:id\', \'article/detail\');
/index/article/detail/id/1  定义成为 /index/art/1

使用路由访问

隐藏路由中的应用名

方案一:入口文件绑定应用

修改入口文件

public/index.php

,将以下内容

$response = $http->run();

修改为(添加name方法使其绑定到指定的应用)

$response = $http->name(\'index\')->run();

此时路由中必须省略应用名:

art/12

方案二:子域名绑定应用

1、配置

hosts

C:\\Windows\\System32\\drivers\\etc\\hosts

127.0.0.1 tp6.cy127.0.0.1 liang.tp6.cy

2、apache 虚拟主机配置文件,先保证两个域名都能访问当前项目

<VirtualHost *:80>DocumentRoot \"E:\\www\\thinkphp\\tp6\\public\"ServerName tp6.cyServerAlias liang.tp6.cy</VirtualHost>

3、修改配置文件:

config/app.php

,添加

域名绑定

  • 键名:liang 代表当前域名的二级域名前缀,即
    liang.tp6.cy
  • 键值:index 代表应用名
  • 以下配置作用:将二级域名
    liang.tp6.cy

    绑定到

    index应用
\'domain_bind\'      => [\'liang\' => \'index\'],

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » ThinkPHP6.0多应用模式路由