如何在Symfony中更新布尔值?

如何在Symfony中更新布尔值?,symfony,symfony4,Symfony,Symfony4,当用户对帖子发表评论时,其批准首先保存为false,因为管理员必须审查他的帖子并批准它。我希望它更改为批准后,管理员已经完成了他们的审查 这是我的初始代码: if ($form->isSubmitted() && $form->isValid()){ $data = $form->getData(); $em = $this->getDoctrine()->getManager(); $data->setApprova

当用户对帖子发表评论时,其批准首先保存为
false
,因为管理员必须审查他的帖子并批准它。我希望它更改为批准后,管理员已经完成了他们的审查

这是我的初始代码:

if ($form->isSubmitted() && $form->isValid()){
    $data = $form->getData();
    $em = $this->getDoctrine()->getManager();

    $data->setApproval(false);
    $em->persist($data);
    $em->flush();

    // $this->redirectToRoute("view_blog");
    return $this->redirect($request->getUri());
}
管理员验证用户评论后,单击“批准”按钮,然后我执行以下操作:

$post = $this->getDoctrine()->getRepository(Comment::class)->find($id);

$data = $post->getApproval();    

$em = $this->getDoctrine()->getManager();
$data->setApproval(true);        
$em->persist($data);
$em->flush();
但是,我得到了这个错误:

对布尔函数调用成员函数setApproval()


替换
$data->setApproval(true)带有
$post->setApproval(true)

应该是这样的

$post = $this->getDoctrine()->getRepository(Comment::class)->find($id);

$em = $this->getDoctrine()->getManager();
$post->setApproval(true);        
$em->persist($data);
$em->flush();

同样,在更新时,不需要再次持久化实体。