【问题标题】:Unable to display specific view for 404 errors in Laravel无法在 Laravel 中显示 404 错误的特定视图
【发布时间】:2014-05-19 20:58:03
【问题描述】:

我的 app/start/global.php 文件中有以下代码:

App::missing(function($exception){
    return Response::view('missing', array('url' => Request::url()), 404);
});

我在 app/view 中有一个名为 missing.blade.php 的文件。但是,上面的代码给了我一个 FatalErrorException,告诉我“调用非对象上的成员函数 getPath()”。我从中获得上述信息的其他漂亮错误页面的格式也搞砸了。

但是当我将 global.php 中的代码更改为以下内容时,一切正常:

App::missing(function($exception){
    return Response::make("Page not found", 404);
});

我不明白发生了什么。找不到路线时如何显示特定视图?

编辑: 这是我的missing.blade.php 文件:

@extends('master')

@section('header')
    <h2>404 Error</h2>
@stop

@section('content')
    <p>
        Unable to locate page.
    </p>
@stop

编辑 2: 同样在我的 app/views 文件夹中,我有一个 master.blade.php 文件,其结构如下:

...
@yield('header')
...
@yield('content')
...

【问题讨论】:

  • 我们可以看看你的missing.blade.php
  • 我在上面的编辑中添加了missing.blade.php 的内容。我在另一个文件中使用完全相同的布局没有问题(即@extends 和@section's)。
  • master.blade.php 请

标签: laravel laravel-4


【解决方案1】:

以下内容应该对您有用,并且还可以让您更好地控制其他错误:

App::error(function(Exception $exception, $code)
{
    Log::error($exception);
    switch ($code)
    {
        case 403:
            return 'Your 403 message';//or load any custom view
             break;
        case 404:
             return Redirect::to('/');//or load any custom view
              break;
        case 500:
             return 'Your 500 Error Message';//or load any custom view
              break;
        default:
            return Redirect::to('/');//or load any custom view
    }
});

【讨论】:

  • 我用你的替换了我的“App::missing...”代码,并交换了行“return Redirect::('/');”对于案例 404,“返回 Response::view('missing');”。现在,当我尝试转到未定义的页面时,它会转到该页面并部分加载我的模板......很奇怪。
  • 这意味着重定向工作正常,可能是您的视图文件中的错误?尝试将视图文件的内容简化为“hello world”并查看它是否有效...
  • 啊,我明白了。是的,当我输入“Hello world!”之类的内容时,它会起作用。在missing.blade.php 里面。但是为什么它不适用于我的模板标记?
  • @cornflakes24 您的视图文件中的某些内容导致它无法正常工作,请尝试使用 var_dump 对其进行调试,直到找到断点。但是,我认为这是一个完全不同的问题。考虑关闭此问题并发布新问题,如果此答案有助于解决原始问题,请随时标记它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多