【问题标题】:Laravel 8 api post route not working wellLaravel 8 api post route 无法正常工作
【发布时间】: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-&gt;validate返回html错误码
  • 好的,非常感谢

标签: php laravel api postman laravel-8


【解决方案1】:

在 api 中最好使用此验证:

$validatedData = Validator::make($request->all(), [
           "departure" => "required",
           "destination" => "required",
           "capacity" => "required",
           "price" => "required"
     ]);
   if ($validatedData->fails()) {
         return $validatedData->failed();
   }

在这种情况下,您可以发送任何您想要的响应,但是当您使用 $this-&gt;validate 时,它会在验证失败时手动将您重定向到其他地方

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    相关资源
    最近更新 更多