【问题标题】:Getting NotFoundHttpException error on Laravel API route在 Laravel API 路由上出现 NotFoundHttpException 错误
【发布时间】:2021-08-02 15:50:25
【问题描述】:

在 Laravel 项目中添加路由

Route::middleware('auth:sanctum')->group(function () {

    Route::get('/user', function (Request $request) {
        return $request->user();
    });

    Route::middleware('token.type:apiclient')
        ->post('users/{user}/tokens', [TokenController::class, 'generateByUserId']);

    Route::resource('phoenix-users', PhoenixUserController::class)
        ->only(['store']);
});

我收到此错误。我该如何解决这个问题?

         {
         "message": "",
         "exception": 
         "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
          "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php",
         "line": 43,
         "trace": [
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
        "line": 162,
        "function": "handleMatchedRoute",
        "class": "Illuminate\\Routing\\AbstractRouteCollection",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
        "line": 647,
        "function": "match",
        "class": "Illuminate\\Routing\\RouteCollection",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
        "line": 636,
        "function": "findRoute",
        "class": "Illuminate\\Routing\\Router",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
        "line": 625,
        "function": "dispatchToRoute",
        "class": "Illuminate\\Routing\\Router",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
        "line": 166,
        "function": "dispatch",
        "class": "Illuminate\\Routing\\Router",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 128,
        "function": "Illuminate\\Foundation\\Http\\{closure}",
        "class": "Illuminate\\Foundation\\Http\\Kernel",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php",
        "line": 67,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Barryvdh\\Debugbar\\Middleware\\InjectDebugbar",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/app/Http/Middleware/SecureHeaders.php",
        "line": 19,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "App\\Http\\Middleware\\SecureHeaders",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
        "line": 21,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
        "line": 31,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
        "line": 21,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
        "line": 40,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
        "line": 27,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
        "line": 86,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/fruitcake/laravel-cors/src/HandleCors.php",
        "line": 38,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Fruitcake\\Cors\\HandleCors",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/fideloper/proxy/src/TrustProxies.php",
        "line": 57,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 167,
        "function": "handle",
        "class": "Fideloper\\Proxy\\TrustProxies",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
        "line": 103,
        "function": "Illuminate\\Pipeline\\{closure}",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
        "line": 141,
        "function": "then",
        "class": "Illuminate\\Pipeline\\Pipeline",
        "type": "->"
         },
         {
        "file": "/var/www/html/core-cdp- api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
        "line": 110,
        "function": "sendRequestThroughRouter",
        "class": "Illuminate\\Foundation\\Http\\Kernel",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/public/index.php",
        "line": 52,
        "function": "handle",
        "class": "Illuminate\\Foundation\\Http\\Kernel",
        "type": "->"
        },
        {
        "file": "/var/www/html/core-cdp-api/server.php",
        "line": 21,
        "function": "require_once"
      }
      ]
      }

【问题讨论】:

  • NotFoundHttpException 表示 404,这意味着 Laravel 找不到匹配的路由。您在哪个 URL 上收到错误,您尝试访问路由文件中的几条路由中的哪一条?你试过php artisan route:clear 清除路由缓存吗?

标签: laravel laravel-8


【解决方案1】:

如上述 cmets 所述,404 错误意味着您提供的端点无法匹配您的任何路由。很难猜测,如果您使用 api.php 文件夹来注册路由,则需要在端点中添加 /api 作为前缀。如果您不想这样做,请在 RouteServiceProvider.php 上将其删除

【讨论】:

    【解决方案2】:

    这意味着您的应用程序找不到路由。

    首先请检查您的路线:确保听写和字符正确

    您可以尝试运行“php artisan optimize”命令。这将清除您的缓存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2015-11-09
      • 2020-01-26
      • 1970-01-01
      • 2017-11-15
      • 2017-05-09
      相关资源
      最近更新 更多