Route::get 在 Laravel 8 API 中返回空白
Posted
技术标签:
【中文标题】Route::get 在 Laravel 8 API 中返回空白【英文标题】:Route::get returns blank in Laravel 8 API 【发布时间】:2021-01-09 17:32:22 【问题描述】:我已经安装了最新版本的 laravel,即 Laravel 8。现在,我正在制作一个 API,遇到了这个奇怪的问题。我正在做 API wayback Laravel 5.6,所以这对我来说并不新鲜。
问题:
Route::apiResource('/test', UserController::class);
使用 postman 时 GET 方法返回空白,即使我将其包装在 auth:api 中间件中以检查是否会显示 "message":"Unauthenticated." 但它不会显示。意思是,即使错误也不起作用。但是当我改变我的发帖路线时,它奏效了。
这是我的路线列表:
这是 GET 方法的 POSTMAN 响应:
这是 POST 方法的 POSTMAN 响应:
这是控制器:
public function index()
return response()->json([
'success' => true,
'data' => ['test' => 'test'],
'message' => 'Success'
], 200);
public function store(Request $request)
return response()->json([
'success' => true,
'data' => ['test' => 'test'],
'message' => 'Success'
], 200);
如您所见,它们是相同的,因此邮递员应该为 GET 和 POST 返回相同的值。我已经尝试过 route:clear 但它不起作用。
谢谢。
【问题讨论】:
对不起,我没注意到。我将使用我使用的 apiResource 对其进行更新。 除此之外,我之前没有见过$this->sendResponse()
方法,因为我通常只使用return response()->json()
,但它适用于POST
而不是GET
的事实是有点奇怪......我会看看我是否可以重新创建
我正在扩展一个具有 sendResponse 功能的 BaseController。我会更新它以匹配回报。
这和我做的差不多;我的父控制器通常具有 sendSuccess()
和 sendFail()
方法,它们基本上包装了对 response()->json()
的调用,签名略有不同。我假设你是相似的。你用return response()->json(...)
得到同样的结果,对吧?
是的,它是一个包装器。我已经更新了问题。
【参考方案1】:
api/test
上的 GET 请求被 GET 路由 vue
捕获
【讨论】:
你是对的。当我注释掉 vue 时,它起作用了。你有什么解决办法吗?谢谢。 @SeeMore 按顺序声明您的路由,因此 vue 是最后一个,还要检查 routeServiceProvider 以了解 api/web 路由之间的顺序 谢谢。我将检查 routeServiceProvider 以更改 api 和 web 的顺序。以上是关于Route::get 在 Laravel 8 API 中返回空白的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8 Fortify 登录显示 429 太多请求