Symfony2& Twig - 主题文件上传小部件

时间:2012-11-13 14:32:29

标签: symfony twig

我有一个实体的Symfony2编辑表单,其中一个字段用于用户的个人资料图片。

我正在尝试设置Twig文件上传小部件的主题,以便该字段的当前图片集显示在文件输入上方。

到目前为止,我有:

{% form_theme edit_form _self %}
{% block field_widget %}
    {% set type = type|default('text') %}

    {% if type == 'file' %}
        <img src="{{ value }}" /> 
    {% endif %}

    {{ block('form_widget_simple') }}
{% endblock %}

一切正常,除了值变量是空白的(我猜是有意义的)。

我的问题是我怎样才能掌握文件的路径?有没有办法从字段的表单值中选择它?我可以将它作为一个选项传递给该领域吗?

Srz如果这是一个愚蠢的问题,对于Symfony和Twig来说还是一个新手......

3 个答案:

答案 0 :(得分:5)

自定义文件小部件的更好方法是

{% block file_widget %}
    {% spaceless %}
     //Your custom content here
    {% endspaceless %}
{% endblock file_widget %}

例如:

{% block file_widget %}
    {% spaceless %}
     <td>{% set type = type|default('file') %}
         <input type="{{ type }}" {{ block('widget_attributes') }} />
     </td>
    {% endspaceless %}
{% endblock file_widget %}

请记住“{%spaceless%}”非常重要

答案 1 :(得分:3)

以更明显的方式指向解决方案的新网址:

http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html

答案 2 :(得分:0)

所以看起来我在搜索Symfony的东西时很糟糕。我最终找到了Symfony食谱的这一部分:http://symfony.com/doc/master/cookbook/form/form_customization.html

Symfony2将其称为表单类型扩展,它们实际上使用将图像标记添加到文件小部件作为示例。