Symfony 3 - Передача неверной переменной в моем модале - PullRequest
1 голос
/ 09 мая 2019

Я создаю сайт, который позволяет моим пользователям загружать пакеты.

У меня есть сущность пакета и сущность uen typeUser. Пакет может быть назначен нескольким пользователям типа, а пользователь типа может иметь несколько пакетов.

Поэтому я выбрал отношение ManyToMany.

На моей странице администратора, где я управляю своими пакетами, я могу удалить их.

Например:

enter image description here

Я только что назначил пакет типам "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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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/>
...