2017-04-16 18 views
1

私はまだSymfonyとPhpを初めて使っているので、SymfonyのドキュメントからCheckboxTypeコードを使用しています。チェックボックス(サービス利用規約/プライバシー)のカスタムメッセージを表示

現在、ユーザーが登録しようとするとチェックボックスがオフになっても、ユーザーがアカウントを作成できないというメッセージは表示されません。

(1)チェックボックスの横にチェックボックスをオンにして続行する必要があるというエラーメッセージが表示されます。このメッセージをカスタマイズしたいと思います。

ありがとうございました!

{{ form_widget(form.termsAccepted) }} 

チェックボックスをレンダリングするために:

Register.html

{% extends 'base.html.twig' %} 

{% block body %} 
    <div class="container"> 
     <div class="row"> 
      <div class="col-xs-12"> 
       <h1>Register!</h1> 

       {{ form_start(form) }} 
       {{ form_row(form.username) }} 
       {{ form_row(form.email) }} 
       {{ form_row(form.plainPassword.first, { 
        'label': 'Password' 
       }) }} 
       {{ form_row(form.plainPassword.second, { 
        'label': 'Repeat Password' 
       }) }} 
       <a href="https://termsfeed.com/terms-service">Terms of service</a> 
       {{ form_widget(form.termsAccepted) }} 

       <a href="http://t5Project/web/">cancel</a> 

       <button type="submit" class="btn btn-primary" formnovalidate> 
        Register 
       </button> 

       <br></br> 

       <p><a href="https://termsfeed.com/privacy">Privacy Policy</a> 


       {{ form_end(form) }} 
      </div> 
     </div> 
    </div> 
{% endblock %} 

RegistrationForm.php

class UserRegistrationForm extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('email', EmailType::class) 
      ->add('username', TextType::class) 
      ->add('plainPassword', RepeatedType::class, ['type' => PasswordType::class]) 
      ->add('termsAccepted', CheckboxType::class, array(
     'mapped' => false, 
     'constraints' => new IsTrue(),)); 


    } 

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults([ 
      'data_class' => User::class, 
      'validation_groups' => ['Default', 'Registration'] 
     ]); 
    } 
} 

答えて

1

問題は、あなたが使用していることです。すべてのユーザフィールドで使用されるラベル、ウィジェットとエラーメッセージが含まれます

{{ form_row(form.termsAccepted) }} 

:これは一方で、ウィジェットをレンダリングします。ウィジェットを保持したい場合は、何とかあなたが個別に使用してエラーをレンダリングすることができ、テンプレートをform_row台無しを使い切っているので:

{{ form_errors(form.termsAccepted) }} 

またForm Customizationのドキュメントをチェックアウトする場合があります。

関連する問題