Symfony2: Тематика фрагментов форм и TWIG

Может ли кто-нибудь объяснить, почему этот код:

{% form_theme form _self %}

{% block avo_gallery_upload_widget %}
{% spaceless %}
    <label for="name">Name:</label>
    {{ form_widget(form.name) }}
    <label for="description">Description:</label>
    {{ form_widget(form.description) }}
{% endspaceless %}
{% endblock avo_gallery_upload_widget %}

Броски

Method "name" for object "Symfony\Component\Form\FormView" does not exist in MyBundle:Default:upload.html.twig at line 13 

Для справки: строка 13: {{form_widget (form.name)}}.

Но если заключить в него предложение IF:

{% form_theme form _self %}

{% block avo_gallery_upload_widget %}
{% spaceless %}
{% if form.name is defined %}
    <label for="name">Name:</label>
    {{ form_widget(form.name) }}
    <label for="description">Description:</label>
    {{ form_widget(form.description) }}
{% endif %}
{% endspaceless %}
{% endblock avo_gallery_upload_widget %}

Вдруг все отлично работает!

Для справки - так выглядит форма:

class GalleryUploadType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('name', 'text')
            ->add('description', 'textarea')
          ;
    }

    public function getName()
    {
        return 'avo_gallery_upload';
    }

    public function getDefaultOptions(array $options){
        return array('data_class' => 'Me\MyBundle\Entity\GalleryUpload');
    }
}

person ioleo    schedule 16.03.2012    source источник
comment
Создана проблема №668 GitHub.   -  person ioleo    schedule 16.03.2012
comment
Как выглядит ваш контроллер?   -  person koral    schedule 01.06.2012


Ответы (1)


fabpot закрыл выпуск на github (03.07.2012) с комментарием:

Каждый месяц я трачу часы, пытаясь безуспешно воспроизвести проблему. Итак, я пока отказываюсь, поскольку, вероятно, в вашем приложении что-то еще происходит (так как оно отлично работает почти для всех). Если у вас есть какая-либо новая информация, которая может быть актуальной, не стесняйтесь повторно открывать новый тикет. Спасибо.

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

Если вы столкнулись с этой ошибкой, воспользуйтесь этим временным решением.

Если у вас есть дополнительная информация о воспроизведении проблемы, опубликуйте ее здесь.

person ioleo    schedule 03.07.2012