将自定义消息(或任何其他数据)传递到Laravel 404.blade.php
我使用的是Laravel5,我在中创建了一个文件将自定义消息(或任何其他数据)传递到Laravel 404.blade.php,php,laravel,laravel-5,Php,Laravel,Laravel 5,我使用的是Laravel5,我在中创建了一个文件404.blade.php views/errors/404.blade.php 每次调用时都会呈现此文件: abort(404); // alias of App::abort(404); 如何传递自定义消息?在404.blade.php Sorry, {{ $message }} {{ $e->getMessage() }} 填写人(示例): 或 在Laravel 4中,可以使用App::missing: App::missing
404.blade.php
views/errors/404.blade.php
每次调用时都会呈现此文件:
abort(404); // alias of App::abort(404);
如何传递自定义消息?在404.blade.php
Sorry, {{ $message }}
{{ $e->getMessage() }}
填写人(示例):
或
在Laravel 4中,可以使用App::missing
:
App::missing(function($exception)
{
$message = $exception->getMessage();
$data = array('message', $message);
return Response::view('errors.404', $data, 404);
});
全局共享一个变量怎么样
view()->share('message', 'llnk has gone away');
// or using the facade
View::share('message', 'llnk has gone away badly');
只要确保在模板中回退到默认值,以防忘记设置它
请参阅与视图共享数据:扩展Laravel的异常处理程序,
照亮\Foundation\Exceptions\Handler
,并使用自己的方法重写renderHttpException(Symfony\Component\HttpKernel\Exception\HttpException$e)
方法
如果您还没有运行php artisan fresh,这对您来说会很容易。只需编辑app/Exceptions/Handler.php,或者创建一个新文件
Handler.php
在您的404.blade.php中
Sorry, {{ $message }}
{{ $e->getMessage() }}
有关其他有用的方法,如getStatusCode()
,请参阅Symfony\Component\HttpKernel\Exception
(注意:复制自。)
在Laravel 5中,您可以在/resources/views/errors
目录中为每个响应代码提供刀片视图。例如,404错误将使用/resources/views/errors/404.blade.php
手册中没有提到的是,在视图中,您可以访问$exception
对象。因此,您可以使用{{$exception->getMessage()}
来获取传递到abort()
中的消息,该消息可能会很有趣(抱歉,我没有太多的声誉),问题是您每次执行abort时都需要调用它。。。示例:view()->share('message','llnk已经消失');中止(404)代码>您可以全局定义一条消息view()->share('404_message','foo')当需要详细说明时,使用相同的方法对其进行否决。或者更好的是定义一个回退(如上所述)。如果在某些情况下不希望变量是可变的,那么为什么还需要变量呢?:)如果要使用第二个参数(异常消息)通过模板中的abort函数,您可以使用App::missing并简单地将异常消息分配给模板。我可以在404.blade.php中获取异常消息而不从App::missing传递吗?您可以否决ErrorHandler和renderHttpException方法请参见:Illumb\Foundation\Exception\Handler:106-124@DisgruntledGoat你刚刚救了我,伙计。Laravel 5.1文档中的{{{$exception->getMessage()}
不可用。向您致敬:)
abort(404, 'Something not found');
{{ $e->getMessage() }}