【问题标题】:The HTTP status code "0" is not validHTTP 状态码“0”无效
【发布时间】:2021-11-05 18:46:44
【问题描述】:

HTTP 状态码“0”无效。

public function filter()
{
$institute = (new Institute)->newQuery();
$institute->with(['locations','courses' =>  function ($query) use ($request){
            $query->with('trainers');
        }]);
}
$data = $institute->get();
if(count($data) > 0)
{
    return response()->json($data);
}
else
{
    return response()->json(404,'No Data found');
}
}

其实我想在没有数据的情况下显示错误404信息,

我的问题是,当我尝试检查数据是否存在时,我收到了一个名为 InvalidArgumentException 的错误。请有人帮忙解决这个问题。

【问题讨论】:

  • 你能粘贴你收到的完整错误吗?
  • 不是response()->json([], 404) 吗?第一个参数应该是数据。

标签: laravel laravel-5.4


【解决方案1】:
return response()->json(404,'No Data found');

json的第一个参数应该是数据,然后是状态码。在这种情况下,状态码的值为 0。只需按以下方式进行:

return response()->json('No Data found', 404);

【讨论】:

  • 我觉得应该是response()->json($data, 404)
  • 哦,是的!你在写,我混淆了他们的立场。
  • 就我而言,我试图获取异常错误代码并传递它,例如$e->getCode() 什么是愚蠢的:/ 以防万一有人这样做......
【解决方案2】:

当您尝试使用 0 作为响应异常代码时会引发此错误。在我的情况下,我的 App/Exceptions/Handler.php 文件已被修改,我在格式化后返回 0 作为我的 HTTP 代码,这是不允许的。只需确保始终从异常处理程序返回有效的 HTTP 代码。

【讨论】:

  • 我知道这没有被标记为解决方案,但我挣扎了 30 分钟,因为我的处理程序将异常代码作为 HTTP 代码返回。谢谢你救了我!
【解决方案3】:

当代码和数据库架构之间存在差异时,另一种情况可能会导致同样的问题。

【讨论】:

    【解决方案4】:

    在 laravel 中,当我尝试在字段类型不正确的表上执行 insert 时遇到了这个问题。在我的具体情况下,我试图将varchar 插入到我的数据库架构中的integer 字段中。

    将架构更改为varchar,一切就绪!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 2017-09-02
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多