2015-07-19 88 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

谢谢!它完美地工作。 –