2012-11-13 16 views
7

Mam formularz edycji Symfony2 dla encji, a jedno z pól służy do zdjęcia profilowego użytkownika.Symfony2 & Twig - widget przesyłania plików tematycznych

Próbuję użyć widgetu przesyłania plików Twig, aby bieżący zestaw obrazów dla tego pola był wyświetlany powyżej danych wejściowych pliku.

tej pory mam:

{% 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 %} 

Wszystko działa dobrze z wyjątkiem, że zmienna wartość jest pusta (co ma sens, jak sądzę).

Moje pytanie brzmi: jak mogę uzyskać ścieżkę do pliku? Czy istnieje sposób, aby wybrać go z wartości formularza dla pola? Czy mógłbym przekazać to jako opcję do pola?

ŠRZ jeśli jest to głupie pytanie, jeszcze całkiem nowy, Symfony i gałązka ..

Odpowiedz

0

Wygląda więc na to, że jestem straszny w googlowania dla Symfony rzeczy. Ostatecznie znalazłem tę część książki kucharskiej Symfony: http://symfony.com/doc/master/cookbook/form/form_customization.html

Symfony2 nazywa to rozszerzeniem typu formularza i faktycznie używają one znacznika obrazu do widżetu pliku jako przykładu.

+2

Sądzę, że usunęli tam przykład. Znalazłem go w http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html – sglessard

5

Lepszy sposób dostosować widget plik zostanie

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

Na przykład:

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

pamiętać, że "{% bezprzestrzenna%}" jest bardzo ważne

+0

Widziałem również "spaceless" używane w szablonach domyślnych. Ale nadal nie wiem, dlaczego jest to ważne. Możesz rozwinąć temat? – Taylan

+1

@Taylan zamierza usunąć białe spacje z wynikowego wyniku. To nie powinna być wielka sprawa, ale widzę dziwne zachowanie, a nawet nie działa, gdy go nie używam. Oto, co twig mówi: http://twig.sensiolabs.org/doc/tags/spaceless.html, ale znowu chodzi o usuwanie spacji, mam dziwne zachowania, gdy nie. –

Powiązane problemy