5

根據Laravel 4 docs我可以拋出一個404具有自定義響應:Laravel 4 - 處理404使用自定義消息

App::abort(404, 'My Message'); 

然後我可以處理我所有的404與自定義頁面:

App::missing(function($exception) 
{ 
    return Response::view('errors.missing', array(), 404); 
}); 

如何以類似於通用Laravel錯誤頁面的方式將「我的消息」傳遞給視圖。

謝謝!

+0

@totymedli我想在'abort'函數中指定消息,而不是在通用處理程序中,所以我可以使用多個消息。我只是缺少'$ exception-> getMessage()'行。謝謝你的幫助。 –

回答

5

你可以通過異常參數抓住你的消息

App::missing(function($exception) 
{ 
    $message = $exception->getMessage(); 
    $data = array('message', $message); 
    return Response::view('errors.missing', $data, 404); 
}); 

注:該代碼可以減少,我寫的是這樣爲了清楚起見。

+0

正是我以後的樣子!非常感謝。 –

+0

您必須添加此代碼的文件和文件夾,@LukeJoyce? – Pathros

+0

@pathros,如果你使用的是Laravel 4.x,這應該在'app.php'上,我認爲它與Laravel 5類似。 –

5

在Laravel 5中,您可以爲/resources/views/errors目錄中的每個響應代碼提供刀片視圖。例如,404錯誤將使用/resources/views/errors/404.blade.php

本手冊未提及的是在視圖內您可以訪問$exception對象。因此,您可以使用{{ $exception->getMessage() }}來獲取您傳遞給abort()的消息。

+1

不能被upvoted。我喜歡Laravel,但它對文檔的「讀取框架」方法可能有點令人沮喪。 – Henrik