标签中包含URL的Symfony 4表单复选框

4ktjp1zp  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(125)

这应该是很简单的事情,但我还是不明白......
我如何呈现一个标签包含同一行URL的表单!

有了这样的东西,我得到的标签下的复选框...

{% set terms_link %}<a title="{% trans %}Read the General Terms and Conditions{% endtrans %}"
                       href="{{ path('homepage') }}">{% 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 class="form-group">
    <label for="{{ form.agreeTerms.vars.id }}">{{ general_terms_and_conditions|raw }}</label>
</div>
mu0hgdu0

mu0hgdu01#

我在网上找到了这个,也许能帮上忙。
twig.vue

{% set termsOfUseFormGroup %}
   {{ form_row(registrationForm.consentement) }}
{% endset %}
{{ termsOfUseFormGroup|replace({'#DOCUMENTATION#':'<a class="has-text-underline" href="' ~ absolute_url(path('donnees_personnelles')) ~ '">documentation RGPD</a>'})|raw }}

表单类型

->add('consentement',CheckboxType::class,[
    'constraints' => [
        new IsTrue(['message' => 'Avez-vu lu notre politique de traitement de données ?'])
    ],
    'mapped' => false, // pour ne pas lier le consentement à la base de données
    'required' => false,
    'label' => 'Je confirme avoir lu la #DOCUMENTATION# concernant le traitement de mes données personnelles.'
])
6kkfgxo0

6kkfgxo02#

只需将这两个元素 Package 到<div>中,并将其样式设置为display:flex
了解flexbox的工作原理here

lnlaulya

lnlaulya3#

从Symfony 5开始,Symfony有一个新的表单标签选项,名为“label_html”。只需将其设置为true。考虑到Symfony 4将在几个月内(2022年11月)结束使用,可能值得进行升级。
https://symfony.com/doc/current/reference/forms/types/form.html#label-html

$builder->add(
    'terms_and_conditions',
    CheckboxType::class,
    [
        'required' => true,
        'label' => 'I accept the <a href="#" data-toggle="modal" data-target="#terms">terms and conditions</a>',
        'label_html' => true,
        'constraints' => [
            New Constraints\NotBlank()
        ]
    ]
);

相关问题