Symfony4 无法使用API平台保存具有布尔属性的表单数据

Symfony4 无法使用API平台保存具有布尔属性的表单数据,symfony4,api-platform.com,Symfony4,Api Platform.com,我使用的是Symfony4和API-Pltaform,API平台运行良好 我尝试使用FormType和Http客户端组件保存数据,但如果表单具有布尔属性,则会出现以下错误: 使用参数执行“插入图书(isbn、标题、描述、作者、出版日期、有效期、价格)值(?、、?、?、?、?、?、?、?)”时发生异常[“isbn 2-7654-1005-8”、“测试书”、“Lorem ipsum Door sit amet、Concertetur Adipsicing Elite、sed do eiusmod T

我使用的是Symfony4和API-Pltaform,API平台运行良好

我尝试使用FormType和Http客户端组件保存数据,但如果表单具有布尔属性,则会出现以下错误:

使用参数执行“插入图书(isbn、标题、描述、作者、出版日期、有效期、价格)值(?、、?、?、?、?、?、?、?)”时发生异常[“isbn 2-7654-1005-8”、“测试书”、“Lorem ipsum Door sit amet、Concertetur Adipsicing Elite、sed do eiusmod Temporal Incidedunt u”、“Alex”、“2020-01-10 16:43:53”、null、null]:

SQLSTATE[23000]:完整性约束冲突:1048列“活动”不能为null

但是如果我从表单中删除属性“active”,数据会很好地保存在数据库中

这是$data的转储,其中包含表单数据:

这是控制器:

/**
 * @Route("/new", name="admin_book_new", methods={"GET", "POST"})
 */
public function new(Request $request)
{

    $book = new Book();

    $form = $this->createForm(BookType::class, $book);

    $form->handleRequest($request);
    
    if ($form->isSubmitted() and $form->isValid()) {

       $data = $form->getData();

        $this->client->request('POST', $this->getParameter('base_url').'/books', array(
            'json' => $data
        ));

        return $this->redirectToRoute('admin_book_index');

    }

    return $this->render('admin/book/new.html.twig', array(
        'form' => $form->createView()
    ));
}
我是这样解决的:

    if ($form->isSubmitted() and $form->isValid()) {

        $data = [];
        foreach ($form->all() as $field) {
            $name = $field->getName();
            $value = $field->getData();

            $data[$name] = $value;
        }

        $this->client->request('POST', $this->getParameter('base_url').'/books', array(
            'json' => $data
        ));

        return $this->redirectToRoute('admin_book_index');

    }

实体书用ApiResource注释标记,我通过HttpClient symfony组件将数据发送到api。api平台可以工作,如果我从表单中删除属性“active”,数据将保存在base中。