Laravel API 路由 - 404

Posted

技术标签:

【中文标题】Laravel API 路由 - 404【英文标题】:Laravel API Route - 404 【发布时间】:2021-04-12 11:37:12 【问题描述】:

我正在构建一个 API 来支持外部应用程序。我已经毫无问题地添加了几条路线,但是突然,当我添加一条新路线(acars/delay)时,我在尝试使用 POST 请求点击http://myurl.dev/api/acars/delay 时收到 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 输出如下所示:

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

【问题讨论】:

你能显示那个控制器方法吗 这可能是因为控制器中的 findOrFail 方法。尝试在控制器启动时 dd 并尝试再次向 Postman 请求 @lagbox 已添加 @Parsa_Gholipour 有趣,刚刚添加到我的控制器中,其中包含一个 findOrFail @Parsa_Gholipour 关注它!不敢相信我错过了!如果你回答,我会接受。谢谢你的提示! :) 【参考方案1】:

这可能是因为控制器中的 findOrFail 方法。尝试在控制器启动时dd 并尝试再次向 Postman 请求。

【讨论】:

非常感谢!没想到看控制器 @AndrewDeForest 不客气;),这实际上发生在我身上,这就是我猜测的原因

以上是关于Laravel API 路由 - 404的主要内容,如果未能解决你的问题,请参考以下文章

404 - 未找到存在 Laravel 8 的 Passport Api 路由

Laravel 路由在 API 中不起作用,返回 404 页

Laravel API 404 错误

Laravel 404 和 500 的 API 和网站中的不同响应(JSON 和网页)?

Laravel 8 自定义路由在使用资源时返回 404

是否可以使用 API 令牌在 laravel 中进行用户模拟?