Sonata_type_boolean 个错误

Sonata_type_boolean bugs

我现在正在使用 sonata admin bundle,在我的模型中我有一个布尔属性,我想通过以下方式在我的编辑视图中显示:"yes" 如果属性为真,"false"如果该属性为 false.. 则:

->add('istrue', null, array())

如果为真则显示“1”,如果为假则显示“0”.. 但是使用 sonata_type_boolean 它始终显示 "yes" 的错误,即使该属性为 false。

->add('istrue','sonata_type_boolean', array())

有人知道如何解决这个问题吗?谢谢

您可以尝试使用选择类型:

->add('istrue', 'choice', array(
    'choices' => array(
        0 => 'False',
        1 => 'Yes'
    )
))

文档:https://sonata-project.org/bundles/admin/master/doc/reference/field_types.html#choice

显示 Yes / False 而不是 Yes / No 或 True / False 有点奇怪:)

我刚遇到同样的问题,并找到了解决方案。

'sonata_type_boolean' 是一个专门的 ChoiceType,其中的选项列表被锁定为是和否。

即使有点棘手,出于向后兼容性的原因,'sonata_type_boolean' 将设置 1 表示是,2 表示否。如果要映射到布尔值,只需将选项 transform 设置为 true。例如,在映射到学说布尔值时需要这样做。

所以你应该试试这个:

->add('istrue','sonata_type_boolean', array(
    'label' => '<Your label here if any>',
    // the transform option enable compatibility with the boolean field (default 1=true, 2=false)
    // with transform set to true 0=false, 1=true 
    'transform' => true,
    'required' => true
))

您可以在此处找到更多信息:https://sonata-project.org/bundles/core/master/doc/reference/form_types.html

希望对您有所帮助!