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、配置hosts
:C:\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'
],
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。