按照thinkphp6官方文档下载了多应用扩展,并创建了几个应用,但是不知道怎么实现应用内路由配置,在route\app.php目录下添加了路由,访问后却提示找不到控制器。后来才知道,这个是单应用模式下的路由配置,多应用下的路由配置需要在app目录下的应用内创建route\app.php路由文件。应用内路由文件创建后,发现不生效,官方文档中也没有相关的提示,后来发现是需要修改config/route.app中的url_lazy_route(延迟解析)改成true,这样应用内路由就生效了。
1.安装php7.3开发环境并配置php环境变量
2.下载composer工具并安装
3.使用composer下载thinkphp6
composer create-project topthink/think=6.0.* tp6
4.安装thinkphp6多应用扩展
composer require topthink/think-multi-app
5.删除app目录下的所有文件(即删除单应用文件)
6.根据需要创建应用,例如创建admin(后台管理)、index(首页)、common(公共基础类)
php think build admin
php think build index
php think build common
7.进入config/route.php,开启路由延迟解析,修改原因
tp6多应用模式的路由设计花了我大概两天时间才弄明白,其实核心还是层级问题,比如开启了多应用模式,然后在应用目录下新建了route文件夹,在这个文件夹下创建路由文件来配置肯定是不行的,因为tp6默认情况下是同步解析的,所以需要在项目的更目录下的config目录下的route的配置文件中开启延迟解析,这样一来就简单了,当你访问:域名/应用/控制器/方法的时候,你的应用目录下的路由文件的分组路由的规则就不应单单拿应用名来分组了,而是拿控制器的名称来做分组 版权声明:本文为CSDN博主「稻客_Awin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/alisen169/a…
'url_lazy_route' => true, //将false修改成true
8.调试应用,并使用浏览器访问默认应用index,如要修改默认应用为admin需进入config/app.php,修改'default_app' => 'index',为'default_app' => 'admin',
9.在admin应用的controller中创建user控制器,在user控制器中创建并为创建testUser,返回testUser
php think make:controller admin@user
public function testUser()
{
return 'testUser';
}
10.为其创建路由,在app\admin目录下新建route\app.php,在其中输入路由配置,在浏览器访问
<?php
use think\facade\Route;
Route::get('test','user/testUser');