会话无法使用Exception Handler

时间:2018-02-22 08:22:43

标签: php laravel laravel-5

当我抛出一些异常时,我需要将用户重定向到带有flash消息的主页,但是我无法访问从异常处理程序中闪现的消息。这是我的代码:

  if(config('app.env') == 'production')
    {
        if($exception instanceof FatalErrorException ||
            $exception instanceof FatalThrowableError
        ){
            return redirect(route('home'))->with('message',
                [
                    'type' => 'info',
                    'content' => 'Nous nous excusons pour cette gène ! 
                    Notre équipe technique est informée du problème et passera
                    à la correction dans le plus brefs délais que possible
                    '
            ]);
        }
    }

    return parent::render($request, $exception);
    }

有什么问题?

我像这样访问闪烁的消息:

        @if(session()->has('message'))
            <div data-toggle="alert-dismissable" role="alert" class="alert alert-{{ session('message')['type'] ?? 'success' }}">
                <i class="fa fa-{{ session('message')['type'] ?? 'success' }}"></i>
                {{ session('message')['content'] ?? session('message') }}
            </div>
        @endif

1 个答案:

答案 0 :(得分:0)

您必须使用session()代替with会话中的值,您可以执行以下操作:

 if(config('app.env') == 'production')
{
    if($exception instanceof FatalErrorException ||
        $exception instanceof FatalThrowableError
    ){

       session()->flash('message', [
                'type' => 'info',
                'content' => 'Nous nous excusons pour cette gène ! 
                Notre équipe technique est informée du problème et passera
                à la correction dans le plus brefs délais que possible
                '
        ]);

        return redirect(route('home'));
    }
}

return parent::render($request, $exception);
}

如果您想使用with(),则必须更改视图

 @if(isset($message))
        <div data-toggle="alert-dismissable" role="alert" class="alert alert-{{ $message['type'] ?? 'success' }}">
            <i class="fa fa-{{ $message['type'] ?? 'success' }}"></i>
            {{ $message['content'] ?? $message['content'] }}
        </div>
    @endif

希望这有帮助