Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony SonataAdmin使用布尔字段创建实体_Symfony_Symfony4_Sonata Admin - Fatal编程技术网

Symfony SonataAdmin使用布尔字段创建实体

Symfony SonataAdmin使用布尔字段创建实体,symfony,symfony4,sonata-admin,Symfony,Symfony4,Sonata Admin,我有这个实体,如果我创建这样的记录 $synopsis = new Synopsis(); $synopsis->setPartOne("a"); $synopsis->setPartTwo("b"); $synopsis->setTitle("A"); $synopsis->setSubtitle("B"); $synopsis->setEnabled(false); $em->persist($synopsis); $em->flush(); 然

我有这个实体,如果我创建这样的记录

$synopsis = new Synopsis();
$synopsis->setPartOne("a");
$synopsis->setPartTwo("b");
$synopsis->setTitle("A");
$synopsis->setSubtitle("B");
$synopsis->setEnabled(false);

$em->persist($synopsis);
$em->flush();
然后我转到我的管理员,我看到启用字段为“否”,这是预期的

但是现在,如果我使用sonata admin new form字段,即使我选择enabled“no”,也会使用enabled=true创建记录。我真的不明白为什么会这样

这是我的SynopsisAdmin中的内容

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper->add('title', TextType::class);
    $formMapper->add('subtitle', TextType::class);
    $formMapper->add('partOne', TextAreaType::class);
    $formMapper->add('partTwo', TextAreaType::class);
    $formMapper->add('enabled', BooleanType::class);
}
这是在实体中定义启用字段的方式

/**
 * @ORM\Column(type="boolean")
 */
private $enabled;
谢谢你的帮助

编辑:有趣的事实也一样,即使我在sonata视图列表中看到“否”,但当我转到表单视图时,我会看到“是”


我怀疑sonata核心功能中有错误。

我认为您应该在表单字段中使用
复选框类型,而不是
布尔类型

看起来是列表、显示和网格操作的
布尔类型。

更新

要使用BooleanType,必须将“transform”选项设置为
true
。 这会将布尔值转换为布尔类型中的“是/否”选项:

$formMapper
    ->add('enabled', BooleanType::class, [
           'transform' => true
    ])

当你换掉BooleanType(例如“CheckboxType”)时,会发生同样的事情吗?@Jeroen看起来不会,它与CheckboxType一起工作,这对我来说很好。但是这仍然意味着BooleanType上有一个bug不要认为BooleanType应该用于formmapper…我们会看到的,我仍然将它作为bug发送到他们的github中,我会看到的。无论如何,谢谢你。