Laravel SQLSTATE[HY000]:一般错误:1366不正确的整数值:';空';关于可空列

Laravel SQLSTATE[HY000]:一般错误:1366不正确的整数值:';空';关于可空列,laravel,axios,laravel-7,Laravel,Axios,Laravel 7,当我试图通过laravel将某个可为null的整数值更新为null时,我的应用程序出现了一个奇怪的错误 SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'null' for column 'next' at row 1 (SQL: update `questions` set `content` = <strong>Kulitmu sering terlihat/terasa:</strong>,

当我试图通过laravel将某个可为null的整数值更新为null时,我的应用程序出现了一个奇怪的错误

SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'null' for column 'next' at row 1 (SQL: update `questions` set `content` = <strong>Kulitmu sering terlihat/terasa:</strong>, `next` = null, `order` = 9, `questions`.`updated_at` = 2021-02-14 17:18:29 where `id` = 9 and `questions`.`deleted_at` is null)

如果将来有人遇到与我相同的问题,在我的情况下,问题是使用Axios发布的FormData对象将每个值转换为字符串,包括null值,因此null值变为“null”,并在将其保存到数据库时出错。问题不在于laravel,而是在前端的javascript上,laravel仍然很奇怪,因为它说生成的查询是<代码>下一步=null。。。而不是
下一步
=“null”..

你能添加执行更新的特定代码吗?我更新了这个问题。还有一件事,你能打印
$request
$data
的内容吗?在它被验证器传递之后,它在验证前后变为“null”而不是null,我已经检查了发出请求的前端,它在前端清楚地表示为null而不是“null”。因此,在末尾,查询表达式类似于
next`='null',而它应该是
next`=null`。希望这能给你一个解决这个问题的线索
    public function update(Request $request, $id)
    {
        $data = $this->validateRequest($request);

        $question = Question::where('id', $id)->first();
        $question->update($data);

        return response()->json([
            'question' => $question,
            'status' => 'Question has been updated'
        ]);
    }

    public function validateRequest($request)
    {
        $validator = Validator::make($request->all(), [
            'content' => 'required',
            'next' => 'nullable',
            'order' => 'required',
        ]);

        if ($validator->fails()) {
            throw(new ApiInvalidRequestData($validator->errors()));
        }

        return $validator->validated();
    }