8

エンティティ用の Symfony2 編集フォームがあり、フィールドの 1 つはユーザーのプロフィール写真用です。

フィールドに設定されている現在の画像がファイル入力の上に表示されるように、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 %}

value 変数が空白であることを除いて、すべてうまく機能します (これは理にかなっていると思います)。

私の質問は、ファイルへのパスを取得するにはどうすればよいですか? フィールドのフォーム値からそれを選択する方法はありますか? フィールドへのオプションとして渡すことはできますか?

これがばかげた質問である場合、Srz は、Symfony と Twig にはまだかなり新しい..

4

3 に答える 3

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%}」は非常に重要であることを忘れないでください

于 2013-01-30T23:16:20.673 に答える
3

より明白な方法でソリューションの新しい URL を指すだけです。

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

于 2014-08-19T16:16:46.747 に答える
0

だから、私は Symfony のものをグーグルで検索するのがひどいようです。最終的に、Symfony クックブックのこの部分を見つけました: http://symfony.com/doc/master/cookbook/form/form_customization.html

Symfony2 はこれを Form Type Extension と呼び、実際には例としてファイル ウィジェットにイメージ タグを追加する方法を使用しています。

于 2012-11-15T07:56:57.933 に答える