Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony2 Sonata Admin show attribute only as a readyonly text

I have some immutable attributes on my entity to administrate with sonata-admin bundle.

I want to show them in the edit-view of the entity, but don't want to provide any mechanism to change it (e.g. the value shall not be inside a input field)

I couldn't find anything but this:

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

I tried it out with read_only, readonly, disabled etc. all the stuff. It looks ok, it's now inside a dropdown (since it is an entity) and I can not modify it.

But I even don't want that. I really need it as text (the current one).

Especially this is annoying if you use DoctrineExtensions with softdeletable, timestampable, since every "save" saves also the form-data.

Changing the type to 'text' instead of 'entity' replaces the dropdown with a input-field.. So, what's the best approach here?

like image 941
eav Avatar asked Sep 16 '13 08:09

eav


2 Answers

$formMapper
    ->add('post', 'entity', 
        array(
            'label' => 'Some post',
            'read_only' => true,
            'disabled'  => true,
            'class' => 'Acme\DemoBundle\Entity\Post'
        )
    )
;
like image 114
GBRocks Avatar answered Nov 12 '22 06:11

GBRocks


This answer tells how to customize list rendering. Maybe the same approach works with form rendering?

If not, then you can create your custom form type according to create custom field type documentation, and customizing the template.

like image 1
TautrimasPajarskas Avatar answered Nov 12 '22 04:11

TautrimasPajarskas