Загрузка Symfony vicimage делает две метки в построителе форм

Привет, ребята, по какой-то причине конструктор форм сделал мне две метки, когда я указал свою собственную метку.

Вот конфиг для пакета vich image:

vich_uploader:
    db_driver: orm
    mappings:
        product_image:
            uri_prefix:         /images/products
            upload_destination: %kernel.root_dir%/../web/images/products
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true
        apartment_image:
            uri_prefix:         /images/apartment
            upload_destination: %kernel.root_dir%/../web/images/apartment
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true
        slide_image:
            uri_prefix:         /images/slider
            upload_destination: %kernel.root_dir%/../web/images/slider
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true
        point_image:
            uri_prefix:         /images/point
            upload_destination: %kernel.root_dir%/../web/images/point
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true
        object_image:
            uri_prefix:         /images/object
            upload_destination: %kernel.root_dir%/../web/images/object
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true
        gallery_image:
            uri_prefix:         /images/gallery
            upload_destination: %kernel.root_dir%/../web/images/gallery
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true

Вот форма сборки:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('translations', 'a2lix_translations',array(
            'required_locales' => array('bg','en')
        ))
        ->add('canvas')
        ->add('mode','checkbox', array('label'=> 'In sell','required'=>false))
        ->add('lat','text',array('label'=>'Latitude'))
        ->add('longt','text',array('label'=>'Longitude '))
        ->add('imageLeadFile', 'vich_image', array(
            'label'=>'Lead image Home Page (720x534)',
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))
        ->add('imageLocationFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))
        ->add('imagePinFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))
        ->add('imageAligmentFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))
        ->add('imageAligmentIconFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))
        ->add('imageArchitectureIconFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))->add('imageStageIconFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))->add('imageLocationIconFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))->add('imageGalleryIconFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))->add('imageColumFirstFile', 'vich_image', array(
        'required' => false,
        'allow_delete' => true, // not mandatory, default is true
        'download_link' => true, // not mandatory, default is true
        ))->add('imageColumSecondFile', 'vich_image', array(
        'required' => false,
        'allow_delete' => true, // not mandatory, default is true
        'download_link' => true, // not mandatory, default is true
    ))->add('imageColumThirdFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
    ))->add('imageColumForthFile', 'vich_image', array(
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))
    ;
}

Поэтому, когда я пытаюсь сделать другую метку, подобную этой (я хочу указать размеры изображения, чтобы администратор знал, какое изображение необходимо предоставить):

        ->add('imageLeadFile', 'vich_image', array(
            'label'=>'Lead image Home Page (720x534)',
            'required' => false,
            'allow_delete' => true, // not mandatory, default is true
            'download_link' => true, // not mandatory, default is true
        ))

У меня вторая метка сверху...

введите здесь описание изображения

Я видел шаблон загрузчика, и у него нет ярлыка:

{% block vich_file_widget %}
{% spaceless %}
    <div class="vich-file">
        {{ form_row(form.file) }}
        {% if form.delete is defined %}
        {{ form_row(form.delete) }}
        {% endif %}

        {% if download_uri is defined and download_uri %}
        <a href="{{ download_uri }}">{{ 'download'|trans({}, 'VichUploaderBundle') }}</a>
        {% endif %}
    </div>
{% endspaceless %}
{% endblock %}

{% block vich_image_widget %}
{% spaceless %}
    <div class="vich-image">
        {{ form_row(form.file) }}
        {% if form.delete is defined %}
        {{ form_row(form.delete) }}
        {% endif %}

        {% if download_uri is defined and download_uri %}
         <a href="{{ download_uri }}"><img src="{{ download_uri }}" alt="" /></a>
        {% endif %}
        {% if show_download_link and download_uri is defined and download_uri%}
        <a href="{{ download_uri }}">{{ 'download'|trans({}, 'VichUploaderBundle') }}</a>
        {% endif %}
    </div>
{% endspaceless %}
{% endblock %}

Конфигурация для использования внешних файлов веток в CoreBundle:

form_themes:
    # other form themes
    - 'CoreBundle:VichForm:fields.html.twig'

Что могло сделать это?


person George Plamenov Georgiev    schedule 07.01.2016    source источник


Ответы (4)


Это старый вопрос, но на него не ответили должным образом, поэтому для дальнейшего использования:

В файле шаблона VichUploaderBundle 'fields.html.twig' сделайте следующее:

<div class="vich-file">
    {{ form_widget(form.file) }}
    {% if form.delete is defined %}
    {{ form_row(form.delete, {'label': 'Delete'}) }}
    {% endif %}

И то же самое ниже для виджета изображения.

<div class="vich-image">
    {{ form_widget(form.file) }}
    {% if form.delete is defined %}
    {{ form_row(form.delete, {'label': 'Delete'}) }}
    {% endif %}

(Это просто базовый Twig кстати)

person caml    schedule 02.04.2017

У меня была такая же проблема, видимо без объяснения причин. Перечитывая и перечитывая документацию, я понял Я забыл эту конфигурацию ниже. Это решило мою проблему:

# app/config/config.yml
twig:
    form_themes:
        # other form themes
        - 'VichUploaderBundle:Form:fields.html.twig'
person Gabriel Flores    schedule 12.01.2016
comment
Хм, это не тот случай, когда я добавил конфигурацию для шаблонов, и она находится в CoreBundle. Эти примеры веток {% block vich_file_widget %} и {% block vich_image_widget %} находятся в CoreBundle. Я могу удалить {{ form_row (form.file) }}, но я не знаю, откуда они появляются.... - person George Plamenov Georgiev; 13.01.2016

В шаблоне загрузчика сделайте это

{% block vich_file_widget %}
{% spaceless %}
    <div class="vich-file">
        {{ form_widget(form.file) }} {# here is the change #}

или другой говорит, что в ветке вы можете установить метку на false 'label'=>false

person Rodolfo Velasco    schedule 10.03.2016
comment
Я пробовал все, что можно было сделать, чтобы удалить элемент ветки метки. - person George Plamenov Georgiev; 12.03.2016

Попробуйте изменить vich_image на file, например:

->add('imageLeadFile', 'file', array(
    'label'=>'Lead image Home Page (720x534)',
    'required' => false,
    'allow_delete' => true, // not mandatory, default is true
    'download_link' => true, // not mandatory, default is true
))
person Torpedr    schedule 10.07.2016