【问题标题】:How to pass custom message into 404 blade in Laravel 5如何将自定义消息传递到 Laravel 5 中的 404 刀片
【发布时间】:2017-08-07 13:42:25
【问题描述】:

在某个路由中,如果无法通过 id 找到猫,我会返回 404 和自定义消息:

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

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

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

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

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

【问题讨论】:

  • 尝试使用 Flash 消息 Session::flash('message','your message') 并在 404 错误页面中使用 {{Session::get('message')}}。这就是我的解决方案

标签: http-status-code-404 laravel-5


【解决方案1】:

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

abort(404, 'Invalid cat id');

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

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

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

{{ $message }}

【讨论】:

    【解决方案2】:

    你可以使用

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

    【讨论】:

    • 谢谢。天啊,在 Laravel 中有这么多不同的做事方式。有点像 Zend 那样。
    【解决方案3】:

    我只是这样做:

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

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

    {{ $msg }}
    

    然后你会在视图中看到:

    some message

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2014-12-11
      • 2016-12-18
      • 2015-02-15
      • 2022-11-02
      • 2015-11-16
      相关资源
      最近更新 更多