请稍等 ...
×

采纳答案成功!

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

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

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

正在回答

5回答

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

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

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

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

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

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

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


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

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

    

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

比如我下面修改的代码

1、在config加入配置项

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

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

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


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

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


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

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

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

Error.php是指异常处理的文件吗,如果是的话,全局异常处理类在app目录下的provider.php文件的'think\exception\Handle'参数指定异常处理类;

如果是多应用每个模式下的异常处理类,比如你admin模块,那你就在admin目录下创建一个provider.php文件指定'think\exception\Handle',同理如果是api模块,就在api目录下定义provider.php文件;

provider.php文件有优先级,如果模块下没定义会自动使用app下的,如果模块目录下有定义,那会使用模块里面定义的。

2 回复 有任何疑惑可以回复我~
左手边的回忆 2019-12-21 18:00:25

经过测试,在多应用模式下,在app\controller\Error.php任然能够给生效(在没有更改源码的情况下)

1 回复 有任何疑惑可以回复我~
北城以北是忧愁 2019-12-29 13:52:08

多应用下也可以显示,只要把erroe.php放到当前模块下的controller目录下,修改正确的命名空间即可https://img1.sycdn.imooc.com/szimg/5e083ee308e7c51a02520117.jpg
https://img1.sycdn.imooc.com//szimg/5e083f0708411b0010010495.jpg

0 回复 有任何疑惑可以回复我~
慕莱坞3268959 2019-12-19 18:13:11

采纳的才是正解

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信