请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

多应用模式下Error.php 应该怎么处理?

回答5 浏览657 2019-12-19 12:30:42

当多应用模式下 Error.php文件应该放置在什么地方? 如果能够做到一个Error.php文件作用于全部应用呢?

添加回答

已采纳回答

如果是多应用模式下 Error.php文件是需要在对应的模块下面定义。

1、代码定位到 /think/route/dispatch/Controller.php 文件中的 controller 方法

//img.mukewang.com/szimg/5dfb3c710900f5ec04940298.jpg

2、可以看到当控制器不存在就会走到 elseif 中的控制器

//img.mukewang.com/szimg/5dfb3ced09610d2f22240926.jpg

    比如请求的地址是 www.tp6.com, 那么返回的就是 app\controller\Error

//img.mukewang.com/szimg/5dfb3d3409c94fc906180226.jpg


  如果请求的地址是 www.tp6.com/admin那么返回的就是 app\admin\controller\Error对应其他也是如此。

//img.mukewang.com/szimg/5dfb3d72094c9d0f06860204.jpg

    

那么如果要定义一个公共的Error文件就需要一个固定的文件地址。

比如我下面修改的代码

1、在config加入配置项

//img.mukewang.com/szimg/5dfb3e1a09ff470010080144.jpg

2、修改源代码 可以还有更好的方式但是我目前想到的就是这样的。

//img1.sycdn.imooc.com/szimg/5dfb3e8009c9da4d21580904.jpg


//img.mukewang.com/szimg/5dfb3ea909aa0bae07240286.jpg

这样配置的话不管是哪个模块都会对应到common/controller/Errro.php文件中。


//img.mukewang.com/szimg/5dfb3f0809a9461f17620462.jpg

//img.mukewang.com/szimg/5dfb3f42091ae24909600198.jpg

2019-12-19 17:13:47
  • 赞 赞 赞。
    2019-12-19 20:04:46
  • 提问者 qq_玩乐_0 #2
    十分感谢  我按你的方式去检查   问题解决了
    主要原因是:
    1.route.php配置文件中开启了使用控制器后缀
    所以我的Error.php文件  应该改名为  ErrorController.php  就可以了
    2019-12-20 09:45:06
  • 嗯呢,大体的思路是这个样子,还有优化的空间,你可以根据自己的需求来设置。
    2019-12-20 09:51:44

4回答

全流程开发 TP6.0实战高并发电商服务系统

难度中级
时长30小时
人数939
好评度99.9%

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

讲师

singwa 全栈工程师

某大型上市公司高级技术专家&高级技术经理,拥有丰富的大数据、高并发、大型网站架构经验,曾在百度,新浪任职多年,热爱教育,讲课风格激情澎湃,认真负责。

意见反馈 帮助中心 APP下载
官方微信