Symfony2 Sonata Admin仅将属性显示为readyonly文本

eav*_*eav 11 php symfony symfony-sonata sonata-admin

我的实体上有一些不可变的属性来管理sonata-admin包.

我想在实体的编辑视图中显示它们,但不想提供任何改变它的机制(例如,值不应在输入字段内)

除了这个,我找不到任何东西:

$formMapper
    ->add('post', 'entity', 
        array(
            'label' => 'Some post', 
            'attr' => array(
                'readonly' => true,
                'disabled' => true
            ),
            'class' => 'Acme\DemoBundle\Entity\Post'
        )
    )
;
Run Code Online (Sandbox Code Playgroud)

我尝试过了有read_only,readonly,disabled等所有的东西.它看起来不错,它现在位于下拉列表中(因为它是一个实体),我无法修改它.

但我甚至不希望如此.我真的需要它作为文本(当前的一个).

特别是如果你使用具有softdeletable,timestampable的DoctrineExtensions,这很烦人,因为每次"保存"也会保存表单数据.

将类型更改为"text"而不是"entity"会将输入字段替换为下拉列表.那么,这里最好的方法是什么?

GBR*_*cks 21

$formMapper
    ->add('post', 'entity', 
        array(
            'label' => 'Some post',
            'read_only' => true,
            'disabled'  => true,
            'class' => 'Acme\DemoBundle\Entity\Post'
        )
    )
;
Run Code Online (Sandbox Code Playgroud)


Tau*_*kas 1

这个答案告诉我们如何自定义列表渲染。也许同样的方法适用于表单渲染?

如果没有,那么您可以根据创建自定义字段类型文档创建自定义表单类型,并自定义模板。