HTTP 状态代码“0”无效

The HTTP status code "0" is not valid

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.Can 的错误,请任何人帮助解决这个问题。

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

json的第一个参数应该是数据,然后是状态码。在这种情况下,状态代码获得 0 值。只需按如下方式操作:

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

当代码和数据库模式不同时,另一种情况可能会导致同样的问题。

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

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

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