【问题标题】:Php Laravel 404 routingPHP Laravel 404 路由
【发布时间】:2017-05-08 17:13:57
【问题描述】:

我对 Laravel 有疑问。我正在开发一个 api,每次 rout 给我 200。如果 routes/api.php 中不存在该路由,我想创建一个 404 错误页面

这些是我的路线:

Route::group(['prefix' => 'v1'], function($request) {
    //Account management
    Route::group(['prefix' => 'auth'], function ($request) {
        Route::post('/login', 'API\V1\AuthController@login');
        Route::post('/register', 'API\V1\AuthController@register');
        Route::get ('/logout', 'API\V1\AuthController@logout');
        Route::post('/reset', 'API\V1\AuthController@reset');
    });

    //AUTHENTICATED ROUTES
    Route::group(['middleware' => 'jwt'], function ($request) {

        //Api info
        Route::group(['prefix' => 'auth'], function ($request) {
            Route::get ('/appdata', 'API\V1\AuthController@appdata');
        });

        //Workouts
        Route::group(['prefix' => 'calls'], function ($request) {
            Route::get('/', 'API\V1\WorkoutController@viewAll');
            Route::get('/{workout_id}', 'API\V1\WorkoutController@get');
        });

        //Products
        Route::group(['prefix' => 'products'], function ($request) {
            Route::get('/', 'API\V1\ProductController@viewAll');
            Route::get('/{product_id}', 'API\V1\ProductController@get');
            //Route::post('/add', 'API\V1\ProductController@add');
        });

        //Users
        Route::group(['prefix' => 'users'], function ($request) {
            Route::get('/', 'API\V1\UserController@getUsers');
            Route::get('/{id}/', 'API\V1\UserController@getById');
        });

    });

});

例如如果我去:localhost:/abc -> 我想加载一个 404 错误页面。

谢谢!

【问题讨论】:

  • 当您点击 localhost/abc 时,它当前返回什么?默认情况下,它会为任何没有定义路由的东西返回 404,你必须在某个地方定义它。
  • 如果我走那条路线,我得到 200。我可以去任何我想要的路线,仍然得到 200。
  • 该文件是您的主要 routes.php 文件吗?
  • 我有 2 个文件:一个用于 api,一个用于网页,位于:routes/web.php 和 routes/api.php,我添加问题的代码来自 api .php
  • 也向我们展示主要的,您是通过 nginx 连接还是在本地开发环境上工作?也粘贴该配置。

标签: php laravel


【解决方案1】:

转到handler.php 并在handle() 方法中包含以下内容

if($e instanceof NotFoundException) {
    return view('notFoundView');
}

【讨论】:

  • 这门课在哪里
【解决方案2】:

我已经设法修复它。在 web.php 和 api.php 我必须添加以下行。

Route::get('/{any}', function ($any) {

    return view('errors');

})->where('any', '.*');

现在每次路由不匹配时,我都会收到一个自定义错误页面(404 和 500)。

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 2021-04-12
    • 2018-01-15
    • 2012-12-19
    • 2021-01-31
    • 2013-12-26
    • 2019-03-31
    • 2014-12-21
    • 2020-03-26
    相关资源
    最近更新 更多