Bonjour à vous !
Dans le Bundle FOSUserBundle, ils ont utilisé plusieurs façon différente d'affichage de formulaire.
Dans login, ils les affiches comme ça :
Et dans register comme ça :
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 {% extends "FOSUserBundle::layout.html.twig" %} {% block breadcrumb %} <span class="divider">/</span> {{ 'layout.login'|trans({}, 'FOSUserBundle') }} {% endblock %} {% block fos_user_content %} {% if error %} <div>{{ error|trans({}, 'FOSUserBundle') }}</div> {% endif %} <form action="{{ path("fos_user_security_check") }}" method="post"> <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" /> <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label> <input type="text" id="username" name="_username" value="{{ last_username }}" /> <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label> <input type="password" id="password" name="_password" /> <input type="checkbox" id="remember_me" name="_remember_me" value="on" /> <label for="remember_me">{{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}</label> <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" /> </form> {% endblock fos_user_content %}
Tout d'abord, je ne comprends pas comment ça se fait que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 {% form_theme form theme %} <form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register"> {{ form_widget(form) }} <div> <input type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" /> </div> </form>face référence à la page form.html.twig qui se trouve dans views :
Code : Sélectionner tout - Visualiser dans une fenêtre à part {% form_theme form theme %}Avez vous une explication pour ça ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 {% block field_label %} {% spaceless %} <label for="{{ id }}">{{ id|trans([], 'FOSUserBundle') }}</label> {% endspaceless %} {% endblock field_label %}
Bon, j'ai fait abstraction et j'ai commencé à codé mon propre thème dans ce page (que j'ai bien sur préalablement copier dans mon propre dossier views). Une fois le thème terminé, il s'affiche parfaitement dans ma page register.
J'aimerais donc l'afficher dans ma page login aussi.. Mais comment je peux faire ? J'ai essayé avec le même code , c'est à dire :
Mais j'obtiens le message suivant :
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 {% extends "ExoProgUserBundle::layout.html.twig" %} {% form_theme form theme %} {% block fos_user_content %} {% if error %} <div>{{ error|trans({}, 'FOSUserBundle') }}</div> {% endif %} <form class="form-horizontal" action="{{ path("fos_user_security_check") }}" method="post"> <fieldset> <legend>Connexion</legend> {{ form_widget(form) }} <div class="form-actions"> <input class="btn btn-primary" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" /> </div> </fieldset> </form> {% endblock fos_user_content %}J'ai aussi essayé avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part Variable "form" does not exist in FOSUserBundle:Security:login.html.twig at line 3Mais rien n'y fait...
Code : Sélectionner tout - Visualiser dans une fenêtre à part {% form_theme form 'nomdubundleBundle:dossier:theme.html.twig' %}
Et si je modifie l'affichage du register en mettant de nom complet (comme ci dessous) au lieu de theme (ou il sort ???), j'ai le meme message...
Pouvez vous s'il vous plait m'éclairer ???
Merci d'avance !
Partager