[英]Override registration form in FOSUserBundle Symfony
我正在嘗試覆蓋fosuserbundle注冊表單的默認區域。 我通過數據庫添加了我想要的所有必填字段,並使用bootstrap cdn進行了自定義。 但是,當我嘗試自定義注冊表單的默認字段時,在register_content.html.twig和register.html.twig中都找不到它來進行編輯。
register_content.html.twig
{% trans_default_domain 'FOSUserBundle' %}
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
{{ form_widget(form) }}
<div>
<input class="btn btn-success" type="submit" id="_submit" name="_submit" value="{{ 'registration.submit'|trans }}" />
</div>
{{ form_end(form) }}
register.html.twig
{% extends "@FOSUser/layout.html.twig" %}
{% block fos_user_content %}
{% include "@FOSUser/Registration/register_content.html.twig" %}
{% endblock fos_user_content %}
我想自定義以下所有文本區域。
在哪里可以找到以上字段?
提前致謝。
如果要更改其直接性,可以在vendor/friendsofsymfony/user-bundle/Form/Type/RegistrationFormType.php
找到它。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle'))
->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle'))
->add('plainPassword', 'repeated', array(
'type' => 'password',
'options' => array('translation_domain' => 'FOSUserBundle'),
'first_options' => array('label' => 'form.password'),
'second_options' => array('label' => 'form.password_confirmation'),
'invalid_message' => 'fos_user.password.mismatch',
))
;
}
但是最好在config.yml中覆蓋以下forme類型(創建一個新的formType)
fos_user:
# ...
registration:
form:
type: AppBundle\Form\RegistrationType
如果要覆蓋現有的FormType,請遵循該文檔: http : //symfony.com/doc/master/bundles/FOSUserBundle/overriding_forms.html
如果要選擇html中的特定字段,則可以選擇如下字段:
{{ form_widget(form.email) }}
{{ form_widget(form.username) }}
要么
{{ form_widget(form.email, { 'attr': {'class': 'foo'} }) }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.