简体   繁体   中英

Symfony 5 form fields appear when they should not

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 &amp; 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 &amp; 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM