ThinkPHP6.0多应用模式路由

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

应用路由都在 app/应用/route 目录下定义,应用路由定义文件示例如下:

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

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

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

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

应用路由定义的只是应用后面的部分:也就是简化的是 控制器/方法

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

创建文章控制器

<?php
namespace 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、配置hostsC:\Windows\System32\drivers\etc\hosts

127.0.0.1 tp6.cy
127.0.0.1 liang.tp6.cy

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

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

3、修改配置文件:config/app.php,添加域名绑定

  • 键名:liang 代表当前域名的二级域名前缀,即 liang.tp6.cy
  • 键值:index 代表应用名
  • 以下配置作用:将二级域名 liang.tp6.cy 绑定到 index应用
'domain_bind'      => [
    'liang' => 'index'
],

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
thinkphp6.0中,可以通过路由分组来实现多应用多模块的路由管理。 首先,在config目录下的route.php文件中,可以定义路由分组: ```php use think\facade\Route; Route::group('admin', function(){ // 管理员模块路由定义 Route::get('index', 'admin/Index/index'); Route::get('user', 'admin/User/index'); }); Route::group('home', function(){ // 前台模块路由定义 Route::get('index', 'home/Index/index'); Route::get('user', 'home/User/index'); }); ``` 上述代码中,我们分别定义了两个路由分组,一个是admin分组,一个是home分组。在每个分组中,可以定义对应模块的路由。 在访问路由时,可以使用分组名作为路由前缀: ``` http://localhost/admin/index // 访问管理员模块的首页 http://localhost/home/index // 访问前台模块的首页 ``` 除了在路由文件中定义分组外,还可以在模块的路由文件中定义分组。例如,在admin模块的route.php文件中,我们可以这样定义路由分组: ```php use think\facade\Route; Route::group('user', function(){ // 管理员模块的用户管理路由定义 Route::get('index', 'admin/User/index'); Route::get('add', 'admin/User/add'); Route::get('edit', 'admin/User/edit'); }); ``` 这样,在访问管理员模块的用户管理相关页面时,就可以使用/user作为路由前缀了: ``` http://localhost/admin/user/index // 访问管理员模块的用户列表页 http://localhost/admin/user/add // 访问管理员模块的添加用户页 http://localhost/admin/user/edit // 访问管理员模块的编辑用户页 ``` 通过路由分组的方式,可以方便地管理多应用多模块的路由,提高代码的可读性和可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值