Bonjour à tous,
Je suis en train d'essayer de surcharger le register du FOSUserBundle pour qu'il ait ses label avec des placeHolders.
Pour ça j'ai fait (en suivant un tuto) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php namespace project\UserBundle\Form\Handler; use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler; class RegistrationFormHandler extends BaseHandler { protected function onSuccess(UserInterface $user, $confirmation) { $user->setUsername($user->getEmail()); parent::onSuccess($user, $confirmation); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?php namespace project\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType as BaseType; class RegistrationFormType extends BaseType { public function buildForm(FormBuilder $builder, array $options) { parent::buildForm($builder, $options); $builder->remove('plainPassword') ->add('plainPassword', 'password') ->get('username')->setAttribute('attr', array('placeholder' => 'Make up a username')) ->get('email')->setAttribute('attr', array('placeholder' => 'Enter your email address')) ->get('plainPassword')->setAttribute('attr', array('placeholder' => 'Enter your personal password')); } public function getName() { return 'project_user_registration'; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 {% extends "FOSUserBundle::layout.html.twig" %} {% block fos_user_content %} {{ form_errors(form) }} <form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register"> {{ form_widget(form._token) }} <div> {{ form_errors(form.username) }} {{ form_widget(form.username) }} </div> <div> {{ form_errors(form.email) }} {{ form_widget(form.email) }} </div> <div> {{ form_errors(form.plainPassword) }} {{ form_widget(form.plainPassword) }} </div> <input type="submit" class="blue_form_button large" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}"> </form> {% endblock fos_user_content %}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="fos_user.registration.form" factory-method="createNamed" factory-service="form.factory" class="Symfony\Component\Form\Form"> <argument>%fos_user.registration.form.type%</argument> <argument>%fos_user.registration.form.name%</argument> <argument /> <argument type="collection"> <argument key="validation_groups">%fos_user.registration.form.validation_groups%</argument> </argument> </service> <service id="fos_user.registration.form.type" class="FOS\UserBundle\Form\Type\RegistrationFormType"> <tag name="form.type" alias="fos_user_registration" /> <argument>%fos_user.model.user.class%</argument> </service> <service id="fos_user.registration.form.handler.default" class="FOS\UserBundle\Form\Handler\RegistrationFormHandler" scope="request" public="false"> <argument type="service" id="fos_user.registration.form" /> <argument type="service" id="request" /> <argument type="service" id="fos_user.user_manager" /> <argument type="service" id="fos_user.mailer" /> <argument type="service" id="project.persona_manager" /> </service> </services> </container>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 project_user.registration.form.type: class: project\UserBundle\Form\Type\RegistrationFormType arguments: [%fos_user.model.user.class%] tags: - { name: form.type, alias: project_user_registration } project_user.registration.form.handler: class: project\UserBundle\Form\Handler\RegistrationFormHandler arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer"] scope: request public: falseLe problème est que quand je charge ma page de register, il me sort l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 registration: confirmation: enabled: true from_email: address: noreply@project.com sender_name: Admin de project template: projectUserBundle:Registration:email.txt.twig form: type: project_user.registration.form.type handler: project_user.registration.form.handler name: fos_user_registration_form validation_groups: [Registration]
InvalidArgumentException: The service definition "project_user.registration.form.handler" does not exist.
Que dois je fais ?
Merci
Partager