项目在开发阶段运行的好好的(Debug=true),上线后(Debug=false)其中有一个页面报“对不起,您的页面暂进无法找到!”错误。摸不清头脑,看看了这个页面也没有什么两样,可就是提示这句话,也不知道是哪一步报错了。最后用代码中用全文检索搜索这句话发现:

\ThinkPHP\Conf\convention.php

  /* 错误设置 */
'ERROR_MESSAGE' => '对不起,您的页面暂进无法找到!',//错误显示信息,非调试模式有效
'ERROR_PAGE' => '', // 错误定向页面
'SHOW_ERROR_MSG' => false, // 显示错误信息
'TRACE_MAX_RECORD' => 100, // 每个级别的错误信息 最大记录数

由此可见出现此提示是因为这里配置了出错后的提示语,再看到后面的一个配置  'SHOW_ERROR_MSG' => false, // 显示错误信息 这里已配置不显示错误信息,也就是说出任何错误都会提示"ERROR_MESSAGE"配置的内容,因此我们给配置为'SHOW_ERROR_MSG' => true,然后删除runtime里面的内容,再刷新页面,果然看到了错误提示:

Class 'Core\Log' not found

这个错误更麻烦,找了半天,首先出错页面没有引用Core\Log,唯独只有这一个页面报错,还是摸不清头脑。最头痛的是,一量把Debug=false或SHOW_PAGE_TRACE=true开启页面调试就不会有此错误,在网上也找不到类似的资料。没办法,一句代码一句代码的扣:

首先将出错页面的代码全部删除,只留一个Action,访问此Action成功!

接着再把代码全部恢复访问此Action失败!

目测其中有一个Action有问题,然后仔细查阅了一下代码,跟其它页面对比对比,找出最有可能出错的一个方法,把这个方法注释掉,再测试,访问成功!

再恢复方法中的部分代码再测试,访问失败!就这样来回测试,最后定位到其中的一句代码:

$_result_txt.= self::updateOrderExcel($_child[0], $_child[1], $_child[2],&$users,&$vars);

这句代码只要存在就报错。但这句代码根本就没执行,再细找最后发现:&$users,&$vars 这2个变量,如果把 & 去掉就好了。加上就不行。猜测的原因可能是这里代码解析出错了,然后调用写日志又失败了。结果就报这个错。

这里写 & 符号是因为我要传递变量的引用,在方法里赋值,因为返回值只有一个,而我要在方法外得到2个值,只能用引用的方式。

最后改成另一种写法就好了,在调用的时候不加 & 符号,而在定义的时候加&符号,效果是一样的。

什么意思呢?举个例子:

function a($p1,$p2){
$p2=333;
return $p1+$p2;
} a(22,&$p);
//原本写法是这样的 ,在这里调用完a后$p的值为333,没错,但正因为这样写就出现上述错误。
最后将写法改为:
function a($p1,&$p2){
$p2=333;
return $p1+$p2;
} a(22,$p);
//这样调用完a后$p的值也是333,而解决了上述问题
至于什么原因,我也不清楚。在Debug=true时两种写法都OK,但Debug=false时第一种写法就会报错!也许第一种写法是PHP新语法吧,目前网上的资料都是第二种写法,我上次无意中发现第一种写法也可行于是就用了第一种写法,没想到会出现这种错误,哎。。。

ThinkPHP报Class 'Core\Log' not found竟然是由这个原因导致的的更多相关文章

  1. .NET CORE LOG

    .NET CORE LOG 合格的应用程序不仅要求运行的高效和计算的准确,稳定及可靠性也要得到满足,同事,系统的可维护性也相当重要.谈及到可维护性,就必须涉及到系统运行状态的监控和异常的快速定位与跟踪 ...

  2. 新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”

    新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”, 其主要原因是文件夹的权限问题,手动将项目文件夹权限更改为可读可写就OK,具体操 ...

  3. Vue热更新报错(log.error('[WDS] Errors while compiling. Reload prevented.'))

    log.error('[WDS] Errors while compiling. Reload prevented.');中的WDS其实是webpack-dev-serverwebpack的意思,用来 ...

  4. thinkphp报错Call to undefined method app\index\controller\Index::fetch()

    因为要写一个系统,所以又重新下载了thinkphp,然后安装了一下.回忆起这个问题很容易让新手朋友费解.会出现如下报错:Call to undefined method app\index\contr ...

  5. loadrunner12-查看controller运行报错详细log

    1.路径为controller-->results-->results setting 2.打开文件夹res/log/***.log,里面会有当前场景运行的log日志. 注:启用这个首先保 ...

  6. 第一次用THINKPHP 报路径错

    我第一次 看网上写的代码 define('THINK_PATH','ThinkPHP');define('App_NAME','43');define('App_PATH','.'); require ...

  7. ThinkPHP报错处理

    1,当运行结果提示:找不到该页面(控制器),怎么办? 建造一个空页面:EmptyController <?php namespace Home\Controller; use Think\Con ...

  8. Thinkphp报错 -- “_STORAGE_WRITE_ERROR_”

    磁盘满了 没有写入权限 解决方法:   chmod -R 777 Runtime目录路径

  9. vue报错如log,如果其他项目运行没问题,很有可能是代码错误 加externals报错

随机推荐

  1. How to compile a node file?如何编译一个节点文件?

    Ubuntu16.04,ros Kinetic 最近几次遇到的问题都是,给你一个写好的ros node文件,没有给你其他的东西,你如何编译它? 以从ros中提取rgb图像和深度图像为例,示例源代码ex ...

  2. Knights0.

    Knights t数轴上有n个骑士位于1,2,3,...n,移动速度相同,初始移动方向已知,当两个骑士相遇时,各有50%的概率赢,输了就死了,并且移动到0和n+1的位置时移动方向会翻转,问最右的骑士存 ...

  3. phaser小游戏框架学习中的屏幕适配

    这篇博客主要讲一下上一篇博客的右侧和底部出现的问题.就是页面会有偏移量.说一下这个产生的原因吧. 一开始在构建html页面的时候,习惯性的在页面中加了 <meta name="view ...

  4. C语言数据结构-栈的实现-初始化、销毁、长度、取栈顶元素、查找、入栈、出栈、显示操作

    1.数据结构-栈的实现-C语言 #define MAXSIZE 100 //栈的存储结构 typedef struct { int* base; //栈底指针 int* top; //栈顶指针 int ...

  5. SP705 SUBST1 - New Distinct Substrings

    \(\color{#0066ff}{ 题目描述 }\) 给定一个字符串,求该字符串含有的本质不同的子串数量. \(\color{#0066ff}{输入格式}\) T- number of test c ...

  6. 一些优秀的Firefox扩展

    AdBlock Plus 拦截广告. 在对付CSDN等垃圾网站时非常有用. Block Site 拦截你不想看的网站 没有知乎的一天真好... XStyle 设置自己喜欢的CSS样式(表示自己并不会用 ...

  7. linux网络编程中的基本概念

    int close(int fd)(假设是服务器端) close 关闭了自身数据传输的两个方向.close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回到调用进程.该套接字描述符不能 ...

  8. C++的一种业务分发方案(另类的工厂模式)

    在C++中,传统的业务分发.总要写一大串的switch-case,并且每次添加新业务时.都要在原有的switch-case里加一个分支,这就违反了设计模式中的开放封闭原则. 下面这样的方案,就全然去除 ...

  9. Redis学习笔记(1)—— NoSQL&Redis简介

    一.NoSQL概述 1.1 什么是NoSQL NoSQL(NoSQL = Not Only SQL),意指“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库. 1.2 为什么需要NoSQ ...

  10. CodeForces-Zuhair and Strings(思维+枚举)

    Given a string ss of length nn and integer kk (1≤k≤n1≤k≤n). The string ss has a level xx, if xx is l ...