2014-05-08 28 views
0
顯示404錯誤特定視圖

我有我的應用程序中下面的代碼/開始/ global.php文件:無法在Laravel

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

而且我有一個名爲missing.blade.php在app文件/視圖。然而,上面的代碼給了我一個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: 也在裏面我的應用程序/ views文件夾,我有一個master.blade.php文件以下結構:

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

我們可以看看你的missing.blade.php – Hailwood

+0

我在上面的編輯中添加了missing.blade.php的內容。我在另一個文件中使用完全相同的佈局,沒有任何問題(即@extends和@部分)。 – chipit24

+0

master.blade.php請 – Hailwood

回答

2

下面應該爲你工作,給您在其他錯誤的更多控制,以及:

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 
    } 
}); 
+0

我用你的代碼替換了我的「App :: missing ...」代碼,並換行「return Redirect ::('/');」對於案例404「返回Response :: view('missing');」。現在,當我嘗試去一個沒有定義的頁面時,它會進入該頁面並部分加載我的模板......很奇怪。 – chipit24

+0

這意味着重定向工作正常,可能是您的視圖文件中的錯誤?嘗試簡化你的視圖文件的內容到只是'你好世界',看看它是否工作... – Yani

+0

啊,我明白了。是的,當我把「Hello world!在missing.blade.php裏面。但爲什麼它不適用於我的模板標記? – chipit24