1

SonataAdmin テンプレートを変更しようとしています。path プロパティを持つ Image エンティティがあります。ImageAdmin クラスを作成し、これを sonataAdmin に統合しました。画像が実際に表示されるように、パスを img タグでラップするように admin-list-view を変更したいと思います。誰も私がこれを行う方法を知っていますか?

ありがとう!

4

2 に答える 2

5

独自のテンプレートを使用するには 2 つの方法があります。

構成ファイル内:

sonata_doctrine_orm_admin:
    entity_manager: 

    templates:
        form:
            - SonataDoctrineORMAdminBundle:Form:form_admin_fields.html.twig
        filter:
            - SonataDoctrineORMAdminBundle:Form:filter_admin_fields.html.twig
        types:
            list:
               ...

            show:
                ...
                image: YourBundle:YourFolder:yourtemplate.html.twig

およびフィールド定義ファイルで:

<?php
            namespace ...;

            use Sonata\AdminBundle\Admin\Admin;
            use Sonata\AdminBundle\Form\FormMapper;
            use Sonata\AdminBundle\Datagrid\DatagridMapper;
            use Sonata\AdminBundle\Datagrid\ListMapper;
            use Sonata\AdminBundle\Show\ShowMapper;

            class ImageAdmin extends Admin
            {
                protected function configureShowField(ShowMapper $showMapper)
                {
                    $showMapper
                        ...
                        ->add('image', 'image')
                        ...
                    ;
                }
            }
        ?>

または2 番目の方法:

    <?php
        namespace ...;

        use Sonata\AdminBundle\Admin\Admin;
        use Sonata\AdminBundle\Form\FormMapper;
        use Sonata\AdminBundle\Datagrid\DatagridMapper;
        use Sonata\AdminBundle\Datagrid\ListMapper;
        use Sonata\AdminBundle\Show\ShowMapper;

        class ImageAdmin extends Admin
        {
            protected function configureShowField(ShowMapper $showMapper)
            {
                $showMapper
                    ...
                    ->add('image', 'string', array('template' => 'YourBundle:YourFolder:yourtemplate.html.twig'))
                    ...
                ;
            }
        }
    ?>

次に、以下のコードをテンプレートにコピーします。

{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}


{% block field %}
    <img src="{{ asset('uploads/media/') }}{{ value|nl2br }}"/>
{% endblock %}
于 2012-11-10T03:34:50.923 に答える
1

HuyVu と同じですが、カスタム テンプレートにはこれを使用します

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    {% thumbnail value, 'small' %}
{% endblock %}
于 2013-12-26T22:42:39.320 に答える