2015-07-19 91 views
2
**-Routes-** 
Route::get('/{parameter}', '[email protected]'); 


**-Controller-** 
public function show($parameter) 
{ 
    return view($parameter)->with('parameter', $parameter); 
} 

我試圖使用帶參數的路由,所以我可以防止太多的創建路由,這是鏈接導致的地方。但問題是,如果沒有找到路由,404.blade.php沒有出現。路由參數,未找到頁面不會導致404

查看[a]找不到。

+0

已找到路徑,但未找到'a',您需要在視圖中重新創建該視圖。 –

回答

2

你可以檢查如果視圖存在,如果沒有,發送手動404響應:

public function show($parameter) 
{ 
    // If the view doesn't exist return a 404 response 
    if (! view()->exists($parameter)) { 
     abort(404); 
    } 

    return view($parameter)->with('parameter', $parameter); 
} 

如果你喜歡,你還可以創建自定義視圖中投放的任何404響應。您應該將其放置在resources/views/errors/404.blade.php中,並且Laravel將確保它在404 HTTP錯誤觸發時顯示它。您可以在Laravel Docs中閱讀更多內容。

+0

謝謝!它完美地工作。 –