0

我正在构建一个 API 来支持外部应用程序。我已经毫无问题地添加了几个路由,但是突然,当我添加一个新路由(acars/delay)时,我在尝试http://myurl.dev/api/acars/delay使用 POST 请求时收到 404 错误。这是我的api.php文件:

Route::post('acars/deactivate', 'API\AcarsController@deactivate');

Route::post('acars/ofp', 'API\AcarsController@ofp');

Route::post('acars/create', 'API\AcarsController@create');

Route::post('acars/pirep', 'API\AcarsController@pirep');

Route::post('acars/mx', 'API\AcarsController@mx');

Route::post('acars/delay', 'API\AcarsController@delay'); // <-- THIS IS THE BROKEN ROUTE

控制器方法:

public function delay(Request $request) {
    $acars = AcarsFlight::findOrFail($request->acars_flight_id);
    $delay = AcarsDelay::create([
        ...
    ]);
    return $delay;
}

其他路线工作正常,但acars/delay每次都在 Postman 中返回 404。我的php artisan route:list输出如下所示:

php artisan route 的输出:list

没有导致冲突的通配符。我曾尝试多次清除我的路由缓存,重新启动服务器等。我还尝试将损坏的路由移动到api.php文件中的不同位置,但没有运气。我唯一能想到的是我最近将应用程序从 Laravel 6 升级到 8。我阅读了 v7 和 v8 的升级指南,我唯一发现的是在启动 v7 时,需要唯一的路由名称,一个要求我相信我见过。我已经验证了大约一千次我使用的是正确的 URL。将 URL 复制并粘贴到浏览器中会给我带来 extected405错误。

4

1 回答 1

1

这可能是因为findOrFail控制器中的类似方法。尝试dd在您的控制器启动时再次尝试使用 Postman 请求。

于 2021-01-06T17:46:41.340 回答