1

私はFOSUserBundleを使用しており、登録フォームにいくつかの HTML 要素を追加したいと考えています。実際、フォームの User クラスに追加されたプロパティを確認できます。問題は、これらのフィールド (名、姓、生年月日など)で CSS テンプレート (ブートストラップ)のルック アンド フィールを取得することです。HTMLが明示的に宣言されているため、ログインページをオーバーライドすることでそれを行うことに成功しました。登録ページでも同じことをしたいのですが、混乱しているように見えます。

  • register.html.twig

    {% extends "FOSUserBundle::layout.html.twig" %}

    {% block fos_user_content %} {% include "FOSUserBundle:Registration:register_content.html.twig" %} {% endblock fos_user_content %}

  • register_content.html.twig

    {% trans_default_domain 'FOSUserBundle' %}

    {{ form_widget(フォーム) }}

このコードからページに表示される要素にアクセスするにはどうすればよいですか?

4

4 に答える 4

8

これを試して

<div class="form-group {% if form.plainPassword.first.vars.errors %}has-error{% endif %}">
  <label class="col-lg-2 control-label">Password:</label>
  <div class="col-lg-5">
    {{ form_widget(form.plainPassword.first, {'attr': {'class': 'form-control input-lg', 'placeholder': 'Enter password', 'required': 'required'}}) }}
    {% for errorItem in form.plainPassword.first.vars.errors %}
      <label class="control-label has-error" for="{{ form.plainPassword.vars.id }}">{{ errorItem.message }}</label>
    {% endfor %}
  </div>
  <div class="col-lg-5">
    {{ form_widget(form.plainPassword.second, {'attr': {'class': 'form-control input-lg', 'placeholder': 'Enter password again', 'required': 'required'}}) }}
  </div>
</div>

わたしにはできる。

于 2013-09-03T13:58:12.567 に答える
2

こちらの公式ドキュメントを参照してください: 「フォームのオーバーライド」。カスタム登録フォーム タイプ クラスを作成し、それをサービスとして宣言し、FOSUserBundle にそれを使用するように指示する必要があります。

テンプレートをカスタマイズするには、「テンプレートのオーバーライド」を参照してください。あなたの場合、作成できますapp/Resources/FOSUserBundle/views/Registration/register.html.twig

于 2013-04-19T18:52:49.630 に答える
2

form_widget(form)次のようなものに置き換えます。

form_widget(form.username)
form_widget(form.email)
form_widget(form.plainPassword)
form_widget(form.myField)
form_rest(form)

カスタムRegistrationFormTypeクラスでは、次のようにユーザー名フィールドにクラスを追加できます。

    $builder
        ->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle', 'attr' => array('class'=>'myClass')))

フィールドのレンダリングに関するフォーム ドキュメントも参照してください: http://symfony.com/doc/current/book/forms.html#rendering-a-form-in-a-template

于 2013-04-20T01:17:39.560 に答える