Laravel 8 api post route 无法正常工作
Posted
技术标签:
【中文标题】Laravel 8 api post route 无法正常工作【英文标题】:Laravel 8 api post route not working well 【发布时间】:2021-08-13 13:29:31 【问题描述】:我刚刚创建了一个新的 laravel 项目用作 API,但是当我在 api.php
文件中创建一个发布路由时,当我使用 Postman 对其进行测试时它不起作用。
当我尝试这段代码时:
Route::post('/announcement', function (Request $request)
return "OK";
);
我得到“OK”的回应: Postman result
但是当我尝试这个时:
Route::post('/announcement', function (Request $request)
$request->validate([
"departure" => "required",
"destination" => "required",
"capacity" => "required",
"price" => "required"
]);
$generated = [
"uuid" => (string) Str::uuid()
];
$a = new Announcement(array_merge($request->all(), $generated));
return $a->save();
);
服务器将我重定向到主页,我真的不明白发生了什么......
邮递员结果:Postman result
CURL 结果:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url='http://localhost:8000'" />
<title>Redirecting to http://localhost:8000</title>
</head>
<body>
Redirecting to <a href="http://localhost:8000">http://localhost:8000</a>.
</body>
</html>
我尝试创建另一个项目或清除缓存,但仍然是同样的问题。我真的被卡住了,我不知道该怎么办
【问题讨论】:
$request->validate
返回html错误码
好的,非常感谢
【参考方案1】:
在 api 中最好使用此验证:
$validatedData = Validator::make($request->all(), [
"departure" => "required",
"destination" => "required",
"capacity" => "required",
"price" => "required"
]);
if ($validatedData->fails())
return $validatedData->failed();
在这种情况下,您可以发送任何您想要的响应,但是当您使用 $this->validate
时,它会在验证失败时手动将您重定向到其他地方
【讨论】:
以上是关于Laravel 8 api post route 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Route::get 在 Laravel 8 API 中返回空白
Laravel:Route::resource() GET & POST 工作,但 PUT & DELETE 抛出 MethodNotAllowedHttpException