路由参数,未找到的页面不会导致404

时间:2015-07-19 06:14:21

标签: php laravel routes

**-Routes-**
Route::get('/{parameter}', 'myController@show');


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

我尝试使用带参数的路由,因此我可以防止链接导致的过多创建路由。但问题是,如果找不到路线,404.blade.php就没有出现。

  

查看[a]未找到。

1 个答案:

答案 0 :(得分: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中阅读更多内容。