8

登録フォームに「条件に同意します」というチェックボックスがあり、「条件」という単語を条件ページにリンクしたいと考えています。

ルートを使用してフォーム ラベルにリンクを追加する方法はありますか? (できればフォームにコンテナを注入せずに)

4

6 に答える 6

6

上記の解決策がうまくいかなかったので、ここで提案された解決策を使用して解決しました: https://gist.github.com/marijn/4137467

わかりましたので、ここに私がそれをした方法があります:

    {% set terms_link %}<a title="{% trans %}Read the General Terms and Conditions{% endtrans %}" href="{{ path('get_general_terms_and_conditions') }}">{% trans %}General Terms and Conditions{% endtrans %}</a>{% endset %}
{% set general_terms_and_conditions %}{{ 'I have read and accept the %general_terms_and_conditions%.'|trans({ '%general_terms_and_conditions%': terms_link })|raw }}{% endset %}
<div>
{{ form_errors(form.acceptGeneralTermsAndConditions) }}

{{ form_widget(form.acceptGeneralTermsAndConditions) }}
<label for="{{ form.acceptGeneralTermsAndConditions.vars.id }}">{{ general_terms_and_conditions|raw }}</label>
</div>
于 2014-01-05T16:45:45.520 に答える
4

最善の方法は、その特定のラベルをレンダリングするために使用される小枝ブロックを上書きすることです。

まず、ドキュメントのフォーム フラグメントの命名セクションを確認してください。次に、適切な名前でフォーム テンプレートに新しいブロックを作成します。小枝にそれを使用するように伝えることを忘れないでください:

{% form_theme form _self %}

次のステップでは、デフォルトform_labelブロックを確認します。

おそらく、次のような一部だけが必要になるでしょう (ここではデフォルトのブロック名を残しています)。

{% block form_label %}
{% spaceless %}
    <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>
        <a href="{{ path("route_for_terms") }}">{{ label|trans({}, translation_domain) }}</a>
    </label>
{% endspaceless %}
{% endblock %}
于 2012-08-21T12:38:14.063 に答える
0

私の解決策は別のものでした:

形:

$builder
->add(
    'agree_to_rules',
    'checkbox',
    [
        'required' => true,
        'label' => 'i_agree_to'
    ]
);

そしてhtml:

<span style="display:inline-block">
    {{ form_widget(form.agree_to_rules) }}
</span>
<span style="display:inline-block">
        <a href="#">rules</a>
</span>

そして同じように見えます:)

于 2015-09-09T14:14:11.483 に答える