Symfony2:表单片段主题和TWIG

时间:2012-03-16 11:59:28

标签: forms symfony 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');
    }
}

1 个答案:

答案 0 :(得分:1)

fabpot 关闭github问题(2012-07-03)并发表评论:

  

每个月,我花了好几个小时试图重现问题而没有运气。所以,我现在放弃了,因为你的应用程序中可能还有其他东西(因为几乎每个人都可以正常工作)。如果您有任何相关的新信息,请随时重新打开新票。感谢。

由于我的应用程序可能出现了问题,并且我没有任何新内容可以添加到我正在关闭此问题的问题中。

如果您碰巧遇到此错误,请查看此workaround

如果您有关于重现问题的任何其他信息,请张贴here