Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel在添加自定义错误页后不显示调试消息_Php_Laravel_Web_Error Handling - Fatal编程技术网

Php Laravel在添加自定义错误页后不显示调试消息

Php Laravel在添加自定义错误页后不显示调试消息,php,laravel,web,error-handling,Php,Laravel,Web,Error Handling,我希望我的Laravel(4.2)站点在出现错误时返回一些自定义错误消息(而不是哇,看起来好像出了问题。),因此我添加了以下内容: App::error(function(Exception $exception, $code) { Log::error($exception); return Response::view('errors.500', [], 500); }); use Illuminate\Database\Eloquent\ModelNotFoundExc

我希望我的Laravel(4.2)站点在出现错误时返回一些自定义错误消息(而不是
哇,看起来好像出了问题。
),因此我添加了以下内容:

App::error(function(Exception $exception, $code)
{
    Log::error($exception);

    return Response::view('errors.500', [], 500);
});

use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
    return Response::view('errors.404', [], 404);
});
app/start/global.php

为了测试我临时更改的页面:
app/config/local/app.php中的
'debug'=>false

我的自定义错误页显示正确(发生错误时)。但是,即使我将本地开发配置恢复为
'debug'=>true
,它们仍会显示(而不是带有堆栈跟踪和错误消息的错误页面)

我尝试将以下内容粘贴到
app/start/local.php
中,希望当laravel位于本地环境中时,它能够覆盖全局错误处理。但这并不能解决问题

App::error(function(Exception $exception, $code)
{
    Log::error($exception);
});

use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
    Log::error($exception);    
});

如何使laravel再次显示错误堆栈跟踪?

问题是,如果您从
App::error
处理程序返回某个内容,laravel将使用它作为响应并停止“冒泡”

最简单的方法就是使用
app.debug
config检查:

App::error(function(Exception $exception, $code)
{
    Log::error($exception);
    if(Config::get('app.debug') !== true){
        return Response::view('errors.500', [], 500);
    }
});

use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
    if(Config::get('app.debug') !== true){
        return Response::view('errors.404', [], 404);
    }
});