2012-11-13 62 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,但是再一次,甚至是關於刪除空格,當我沒有時,我會有奇怪的行爲。 –