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

Routing parameter, page not found doesn't cause 404

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


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

我尝试使用带参数的路由,这样我可以防止在 link 通向的地方创建太多路由。但问题是,如果找不到路由,404.blade.php 就不会出现。

View [a] not found.

您可以检查视图是否存在,如果不存在,请手动发送 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.

中阅读更多内容