Я создаю сайт, который позволяет моим пользователям загружать пакеты.
У меня есть сущность пакета и сущность uen typeUser.
Пакет может быть назначен нескольким пользователям типа, а пользователь типа может иметь несколько пакетов.
Поэтому я выбрал отношение ManyToMany.
На моей странице администратора, где я управляю своими пакетами, я могу удалить их.
Например:
Я только что назначил пакет типам "GRETA" и "CANOPEE".
Теперь, если я хочу удалить пакет из «CANOPEE» (и он останется в «GRETA»), я просто нажму «Удалить».
Так что удаление идет очень хорошо.
Однако по соображениям безопасности я решил добавить модальный режим для запроса подтверждения удаления.
Проблема здесь. В Twig переменные не проходят корректно в модальном режиме и не удаляют нужную мне строку.
Если я решу удалить строку «CANOPEE», она удалит строку «GRETA». Только после этого, если я попытаюсь снова удалить строку «CANOPEE», она будет удалена.
Так что проблема в вызове моего модала может показаться:
<a href="{{ path('paquets_new') }}" class="btn btn-primary btn-lg btn-block"> <span class="glyphicon glyphicon-plus"></span> Ajouter un package</a>
<br/> <br/>
{% for unType in typesUser %}
{% set i=loop.index0 %}
<h1 class="text-primary text-center">{{unType['typeUtilisateur']}} <span class="badge badge-primary badge-pill w3-small">{{ tabInfos[i]|length }}</span></h1>
<br />
<table class="table table-stripped">
<thead>
<tr>
<th>Id</th>
<th>Titre</th>
<th>Package</th>
<th>Notice</th>
<th>Commentaire</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for uneInfo in tabInfos[i] %}
<tr>
<td><a href="{{ path('paquets_show', { 'id': uneInfo.id }) }}">{{ uneInfo.id }}</a></td>
<td>{{ uneInfo.titre }}</td>
<td><a href="{{ path('paquet_fileDDL', { 'id': uneInfo.id, 'type': 'package'}) }}"</a>{{ uneInfo.urlPaquet }} </td>
<td><a href="{{ path('paquet_fileDDL', { 'id': uneInfo.id, 'type': 'notice'}) }}"</a>{{ uneInfo.urlNotice }} </td>
<td>{{ uneInfo.commentaire }}</td>
<td>
<a href="{{ path('paquets_edit', { 'id': uneInfo.id }) }}" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Modifier</a>
{#<a href="{{ path('paquets_delete', { 'id': uneInfo.id, 'type':unType['typeUtilisateur'] }) }}" class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span> Supprimer</a>#}
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#deleteModal-{{ uneInfo.id }}"><span class="glyphicon glyphicon-remove"></span> Supprimer</button>
{{ macro.create_delete_modal('deleteModal-'~uneInfo.id, 'Voulez-vous vraiment supprimer ce package ? ', path('paquets_delete', {'id':uneInfo.id, 'type': unType['typeUtilisateur']})) }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
<br/><br/>
{% endfor %}
Подробнее о том, где оно висит.
Ссылка для удаления без запроса подтверждения:
<a href="{{ path('paquets_delete', { 'id': uneInfo.id, 'type':unType['typeUtilisateur'] }) }}" class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span> Supprimer</a>
А с модалом:
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#deleteModal-{{ uneInfo.id }}"><span class="glyphicon glyphicon-remove"></span> Supprimer</button>
{{ macro.create_delete_modal('deleteModal-'~uneInfo.id, 'Voulez-vous vraiment supprimer ce package ? ', path('paquets_delete', {'id':uneInfo.id, 'type': unType['typeUtilisateur']})) }}
Модал:
{%- macro create_delete_modal(id, body, deleteLink) -%}
{% filter spaceless %}
<div id="{{ id }}" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Supprimer?</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<p>{{ body }}</p>
</div>
<div class="modal-footer">
<a href="{{ deleteLink }}" class="btn btn-primary">Supprimer</a>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
</div>
</div>
</div>
</div>
{% endfilter %}
{%- endmacro -%}
Я думаю, что проблема связана с typeUser, который заполняется в модальном вызове, но не используется в самом модале, когда я вызываю "deleteLink", но я не вижу, какие изменения нужно внести
Спасибо за вашу помощь!
Часть HTML:
<h1 class="text-primary text-center">CIRCO <span class="badge badge-primary badge-pill w3-small">1</span></h1>
<br />
<table class="table table-stripped">
<thead>
<tr>
<th>Id</th>
<th>Titre</th>
<th>Package</th>
<th>Notice</th>
<th>Commentaire</th>
<th>Partagé avec</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/8">8</a></td>
<td>pack4</td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/8/package/file"</a>atelech.txt </td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/8/notice/file"</a> </td>
<td>Deja pour CIRCO puis duplication sur 1er degré</td>
<td>
<ul>
</ul>
</td>
<td>
<a href="/stackOverflowTest/web/app_dev.php/admin/paquets/8/edit" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Modifier</a>
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#deleteModal8"><span class="glyphicon glyphicon-remove"></span> Supprimer</button>
<div id="deleteModal8" class="modal fade" role="dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title">Supprimer?</h4><button type="button" class="close" data-dismiss="modal">×</button></div><div class="modal-body"><p>Voulez-vous vraiment supprimer ce package ? </p></div><div class="modal-footer"><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/8/CIRCO/delete" class="btn btn-primary">Supprimer</a><button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button></div></div></div></div>
</td>
</tr>
</tbody>
</table>
<br/><br/>
<h1 class="text-primary text-center">1er_degré <span class="badge badge-primary badge-pill w3-small">3</span></h1>
<br />
<table class="table table-stripped">
<thead>
<tr>
<th>Id</th>
<th>Titre</th>
<th>Package</th>
<th>Notice</th>
<th>Commentaire</th>
<th>Partagé avec</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/1">1</a></td>
<td>Test1</td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/1/package/file"</a>atelech.txt </td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/1/notice/file"</a> </td>
<td>zryh</td>
<td>
<ul>
<li>GRETA</li>
<li>CANOPEE</li>
</ul>
</td>
<td>
<a href="/stackOverflowTest/web/app_dev.php/admin/paquets/1/edit" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Modifier</a>
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#deleteModal1"><span class="glyphicon glyphicon-remove"></span> Supprimer</button>
<div id="deleteModal1" class="modal fade" role="dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title">Supprimer?</h4><button type="button" class="close" data-dismiss="modal">×</button></div><div class="modal-body"><p>Voulez-vous vraiment supprimer ce package ? </p></div><div class="modal-footer"><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/1/1er_degr%C3%A9/delete" class="btn btn-primary">Supprimer</a><button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button></div></div></div></div>
</td>
</tr>
<tr>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/6">6</a></td>
<td>pack2</td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/6/package/file"</a>atelech.txt </td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/6/notice/file"</a> </td>
<td>Juste pour CIRCO</td>
<td>
<ul>
</ul>
</td>
<td>
<a href="/stackOverflowTest/web/app_dev.php/admin/paquets/6/edit" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Modifier</a>
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#deleteModal6"><span class="glyphicon glyphicon-remove"></span> Supprimer</button>
<div id="deleteModal6" class="modal fade" role="dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title">Supprimer?</h4><button type="button" class="close" data-dismiss="modal">×</button></div><div class="modal-body"><p>Voulez-vous vraiment supprimer ce package ? </p></div><div class="modal-footer"><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/6/1er_degr%C3%A9/delete" class="btn btn-primary">Supprimer</a><button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button></div></div></div></div>
</td>
</tr>
<tr>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/12">12</a></td>
<td>fgdgjdtgjdtj</td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/12/package/file"</a>atelech.txt </td>
<td><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/12/notice/file"</a> </td>
<td>tryjdtj</td>
<td>
<ul>
<li>DAFPIC</li>
</ul>
</td>
<td>
<a href="/stackOverflowTest/web/app_dev.php/admin/paquets/12/edit" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Modifier</a>
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#deleteModal12"><span class="glyphicon glyphicon-remove"></span> Supprimer</button>
<div id="deleteModal12" class="modal fade" role="dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title">Supprimer?</h4><button type="button" class="close" data-dismiss="modal">×</button></div><div class="modal-body"><p>Voulez-vous vraiment supprimer ce package ? </p></div><div class="modal-footer"><a href="/stackOverflowTest/web/app_dev.php/admin/paquets/12/1er_degr%C3%A9/delete" class="btn btn-primary">Supprimer</a><button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button></div></div></div></div>
</td>
</tr>
</tbody>
</table>
<br/><br/>