I display with twig a form for adding an event, with the possibility at the same time to create a new account if no user is connected. So I have one form integrated with another, my UserType form is integrated with my EventType form.
I made a condition that if the user is logged in, we will not display the registration form. Only that of event creation.
Here is my code:
{{ form_start(form) }}
{% if form.vars.valid == false %}
<div class="alert alert-danger">
Des erreurs ont été relevées. Merci de vérifier le formulaire.
</div>
{% endif %}
{% if app.user == false %}
<div id="general_info">
<h4> <i class="ion-ios-information"></i> À propos de vous</h4>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.user.lastName, {'label': 'Votre nom *', 'attr': {'class': 'filter-input'}}) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.user.firstName, {'label': 'Votre prénom *', 'attr': {'class': 'filter-input'}}) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.user.password.first, {'label': 'Votre mot de passe *', 'attr': {'class': 'filter-input'}}) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.user.email, {'label': 'Votre adresse email *', 'attr': {'class': 'filter-input'}}) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.user.password.second, {'label': 'Confirmez votre mot de passe *', 'attr': {'class': 'filter-input'}}) }}
</div>
</div>
</div>
</div>
{% endif %}
<div id="event_and_category">
<h4><i class="ion-ios-list-outline"></i> Nom & Catégorie</h4>
<div class="row">
<div class="col-md-6">
{{ form_row(form.title) }}
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.category) }}
</div>
</div>
</div>
</div>
<div id="date_and_location">
<h4><i class="ion-ios-location"></i> Date & Localisation</h4>
<h5>Où se déroule votre événement ?</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.location) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.address) }}
{{ form_row(form.latitude) }}
{{ form_row(form.longitude) }}
</div>
</div>
<div class="col-md-6"></div>
<div class="col-md-6 no-padding mar-bot-20">
<div id="map"></div>
</div>
</div>
<h5>Quand se déroule votre événement ?</h5>
<div class="row">
<div class="col-md-6">
<div id="datepicker-from" class="input-group date" data-date-format="dd/mm/yyyy">
{{ form_row(form.startDate) }}
<span class="input-group-addon"><i class="icofont-ui-calendar"></i></span>
</div>
</div>
<div class="col-md-6">
<div id="datepicker-to" class="input-group date" data-date-format="dd/mm/yyyy">
{{ form_row(form.endDate) }}
<span class="input-group-addon"><i class="icofont-ui-calendar"></i></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.startAt) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.endAt) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.dateDescription) }}
</div>
</div>
</div>
</div>
<div id="event_info">
<h4><i class="ion-ios-calendar-outline"></i> Votre événement</h4>
<h5>Informations de contact</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.contactName) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.contactEmail) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.contactPhone) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.organisatorEmail) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.organisatorPhone) }}
</div>
</div>
</div>
<h5>Décrivez votre événement</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.description) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.tags) }}
</div>
</div>
</div>
<h5>Choisissez une image pour votre événement</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class="add-listing__input-file-box">
{{ form_row(form.coverFile) }}
<div class="add-listing__input-file-wrap">
<i class="ion-ios-cloud-upload"></i>
<p>Ajoutez une photo ou une image</p>
</div>
</div>
</div>
</div>
</div>
<h5>Bulletin d'inscription</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<form class="photo-upload">
<div class="form-group">
<div class="add-listing__input-file-box">
{{ form_row(form.registrationForm) }}
<div class="add-listing__input-file-wrap">
<i class="ion-ios-cloud-upload"></i>
<p>Ajoutez un fichier</p>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<h5>Réseaux sociaux</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.website) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form_row(form.facebookPage) }}
</div>
</div>
</div>
<h5>Annonce PREMIUM</h5>
<div class="row">
<div class="col-md-12 annonce-premium">
{{ form_row(form.featured) }}
</div>
</div>
{{ form_row(form._token) }}
{{ form_row(form.save) }}
</div>
{{ form_end(form) }}
So far everything is fine, if I logged in the "about you" part does not appear. My problem is that it appears lower !!
So after my submit button. How to solve this problem?
In your form_end(form)
line, add a flag to tell twig to not render unused forms:
{{ form_end(form, { 'render_rest': false }) }}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.