php - Symfony 5 表单域在不应该出现的时候出现
问题描述
我用树枝显示一个用于添加事件的表单,如果没有用户连接,则可以同时创建一个新帐户。所以我有一个表单与另一个表单集成,我的 UserType 表单与我的 EventType 表单集成。
我做了一个条件,如果用户已登录,我们将不会显示注册表单。只有事件创建。
这是我的代码:
{{ 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) }}
到目前为止一切都很好,如果我登录了“关于你”部分并没有出现。我的问题是它看起来更低!
所以在我的提交按钮之后。如何解决这个问题呢 ?
解决方案
在您的form_end(form)
行中,添加一个标志来告诉 twig 不要呈现未使用的表单:
{{ form_end(form, { 'render_rest': false }) }}
推荐阅读
- javascript - Why react make million request to api
- php - 获取磁盘PHP的root url
- reactjs - 如何使用 react-semantic-ui 将所选值设置为状态
- database - MariaDB 事务仅提交最后一次插入
- arrays - 在Delphi中将静态数组转换为指针?
- python - 将嵌套链接的 Python 字典可视化为决策树
- maven - 蚂蚁和行家不在詹金斯奴隶中工作
- php - 如何遍历数组并将其值存储在 Laravel 中
- flask - 是什么导致我在 Flask“hello world”应用程序上看不到输出?
- php - laravel 在 foreach 循环中使用 if 条件时检查 foreach 循环的最后一次迭代