【问题标题】:Laravel after_or_equal validation returns wrong status code for date before todayLaravel after_or_equal 验证返回今天之前日期的错误状态码
【发布时间】:2020-09-16 03:52:54
【问题描述】:

有人有类似的问题吗?

我有一个特定请求的控制器方法的路由。在请求中,我正在验证这样的日期格式:

'date' => 'required|date_format:Y-m-d|after_or_equal:today'

当我向 Postman 发送今天或以后的日期时,一切都很好,并且返回了代码 200。当我发送今天之前的日期时,api 也发送了 200 个代码,但它从未命中方法代码(尝试使用 dd 检查)但返回 api 的主页。

复制步骤:

  1. 创建api路由
  2. 使用自定义请求创建控制器和方法
  3. 将 authorize() 返回值设置为 true
  4. 将 rule() 返回值设置为['date' => 'required|date_format:y-m-d|after_or_equal:today']
  5. 向 API 发送请求(即使用 Postman),日期在今天之前和之后

我正在使用 Laravel 框架 7.13.0

【问题讨论】:

  • laravel.com/docs/7.x/… 如果您的请求是常规 Http 请求,验证失败只会将您重定向到会话数据错误的上一页。您能否添加您通过邮递员发送的请求详细信息?
  • 这是一个原始 JSON 类型的 post 请求,如下所示:{ "date": "2020-05-10" } 对,好点,我没有在标题中添加接受键。它有效,谢谢@msmahon
  • 您的请求标头是什么?你的内容类型是 application/json 吗?
  • 是的,我错过了标题。再次感谢

标签: laravel validation


【解决方案1】:

您需要设置正确的 JSON 请求标头,以便 laravel 返回带有错误的 JSON 响应而不是重定向。

【讨论】:

    猜你喜欢
    • 2019-02-28
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多