标签: laravel-exceptions

Laravel 错误处理,get_class 与 instanceof

在 app/Exceptions/Handler.php 中的以下代码中,第一个不起作用,但第二个起作用。

dd(get_class($exception)); 输出“Illuminate\Database\Eloquent\ModelNotFoundException”。

第一个类似于 doc。我怎样才能让它工作instanceof

    public function render($request, Exception $exception)
    {
        //dd(get_class($exception));
        // this does not work.
        if ($exception instanceof Illuminate\Database\Eloquent\ModelNotFoundException
) {
            return response()->json(['error'=>['message'=>'Resouce not found']], 404);
        }
        // This one works.
        if(get_class($exception) == "Illuminate\Database\Eloquent\ModelNotFoundException") {
            return response()->json(['error'=>['message'=>'Resouce not found']], 404);
        }

        return parent::render($request, $exception);
    }
Run Code Online (Sandbox Code Playgroud)

laravel-exceptions laravel-5.4

4
推荐指数
1
解决办法
7379
查看次数

Laravel 5.7 如何使用 URL 记录 404

我想在 Laravel 5.7 中记录 404 错误,但我不明白如何打开它。除了记录 404 错误之外,我还想记录请求的 URL。其他错误被正确记录。

.env

APP_DEBUG=true
LOG_CHANNEL=stack
Run Code Online (Sandbox Code Playgroud)

配置/日志记录.php

'stack' => [
    'driver' => 'stack',
    'channels' => ['daily'],
],
Run Code Online (Sandbox Code Playgroud)

根据错误处理文档

异常处理程序的 $dontReport 属性包含一个不会被记录的异常类型数组。例如,由 404 错误以及其他几种类型的错误导致的异常不会写入您的日志文件。您可以根据需要向此数组添加其他异常类型:

app/Exceptions/Handler$dontReport数组为空。

我通过 Blade 文件自定义了 404 视图 resources/views/errors/404.blade.php

基于此答案,我尝试了此代码,app/Exceptions/Handler,但日志中未显示任何内容:

public function report(Exception $exception)
{
    if ($this->isHttpException($exception)) {
        if ($exception instanceof NotFoundHttpException) {
            Log::warning($message);
            return response()->view('error.404', [], 404);
        }
        return $this->renderHttpException($exception);
    }

    parent::report($exception);
}
Run Code Online (Sandbox Code Playgroud)

接受 Mozammil 的回答后更新,效果很好。 我已经缩短了他对下面的回答。不要忘记添加use Illuminate\Support\Facades\Log到处理程序文件中。

public function …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-exceptions laravel-5.7

4
推荐指数
1
解决办法
2756
查看次数