2012-11-13 56 views
7

我有一个实体的Symfony2编辑窗体,其中一个字段是用户的个人资料图片。Symfony2&Twig - 主题文件上传部件

我正在尝试主题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和嫩枝..

回答

0

所以看起来我在google搜索Symfony的东西太可怕了。我最终发现Symfony Cookbook的这一部分:http://symfony.com/doc/master/cookbook/form/form_customization.html

Symfony2称它为Form Type Extension,他们实际上使用在文件小部件中添加图像标签作为他们的示例。

+2

我想他们已经删除了那里的例子。我发现它在http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html – sglessard

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%}” 是非常重要的

+0

我也看到'无空间'也被用在默认模板中。但我仍然不知道为什么它很重要。谨慎阐述? – Taylan

+1

@Taylan即将从结果输出中删除空格。这不应该是一个大问题,但我已经看到奇怪的行为,甚至不使用它时不工作。这就是twig所说的http://twig.sensiolabs.org/doc/tags/spaceless.html,但是再一次,甚至是关于删除空格,当我没有时,我会有奇怪的行为。 –