如何将自定义消息传递到 Laravel 5 中的 404 blade

How to pass custom message into 404 blade in Laravel 5

在某个路由中,如果通过id找不到猫,我return一个带有自定义消息的404:

App::abort(404, 'Invalid cat id');

我想将上面的自定义消息传递到 Laravel 的 404 blade,但我不知道如何将此消息放入其中。看来我必须破解一些 Laravel 的代码才能做到这一点。

我也试过这个,它确实显示了自定义消息,但是 http 状态代码是 200 而不是 404,这不是我想要的:

view('errors.404')->with('message', 'Invalid cat id');

我觉得在 Laravel 中必须有一种更简单、更标准化的方法来完成这种基本操作。正确的做法是什么?

到处都说你可以做一个简单的

abort(404, 'Invalid cat id');

但我没有在文档中找到它。我的解决方案:

View::share('message','Invalid cat id');
abort(404);

这将与所有视图共享 de $message 变量,您将获得 404 HTTP 代码。然后在 404.blade.php 文件中执行此操作:

{{ $message }}

您可以使用

return response()->view('errors.404', ['message' => 'Invalid cat id'], 404);

我就是这样做的:

return view('errors.404', ['msg' => 'some message']);

并在视图中(在 404.blade.php 文件中)写入:

{{ $msg }}

然后您将在视图中看到:

some message