このチュートリアルでは、自分のエンティティにカスタムアクションを追加する方法について説明しました。カスタムアクションに確認モーダルを追加する
https://sonata-project.org/bundles/admin/3-x/doc/cookbook/recipe_custom_action.html
それは問題なく完璧に動作します。
しかし、今私はあなたがそれを実行するだけでなく、あなたがそれをしたいと確信しているかどうかを確認した後、最初にそのアクションに確認モーダルを追加したいと思います。
リンクをデータトグルにして、実際のアクションルートを削除するだけでした。モーダルのためのブートストラップdivクラスを追加し、ルート内にリンクを追加します。しかし今のところ、最初のエンティティのIDは、それぞれのIDではなく、すべてのエンティティで使用されます。
私はこの変更:これに
{% if admin.isGranted('EDIT', object) and admin.hasRoute('delOnt') %}
<a href="{{ admin.generateObjectUrl('delOnt', object) }}"
class="btn btn-sm btn-default edit_link">
<i class="fa fa-trash" aria-hidden="true"></i>
{{ 'action_del_ont' | trans({}, "QiOpticksBundle") }}
</a>
{% endif %}
:
{% if admin.isGranted('EDIT', object) and admin.hasRoute('delOnt') %}
<a href="#"
class="btn btn-sm btn-default edit_link"
data-toggle="modal"
data-target="#deleteModal">
<i class="fa fa-trash" aria-hidden="true"></i>
{{ 'action_del_ont' | trans({}, "QiOpticksBundle") }}
</a>
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Delete ONT</h4>
</div>
<div class="modal-body">
Are you sure you want to delete this ONT?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
{{ 'no' | trans({}, "QiOpticksBundle") }}
</button>
<a href="{{ admin.generateObjectUrl('delOnt', object) }}"
class="btn btn-danger"
title="{{ 'action_del_ont'|trans({}, 'QiOpticksBundle') }}">
{{ 'action_del_ont' | trans({}, "QiOpticksBundle") }}
</a>
</div>
</div>
</div>
</div>
{% endif %}
を、今すべてのエンティティのアクションは、第1のエンティティのIDの使用、およびない自分自身を作ります。
{{ admin.generateObjectUrl('delOnt', object) }}
をこの{{ path('admin_qi_opticks_tl1ont_delOnt', {'id': object.id}) }}
のような実際のルート名に置き換えようとしましたが、同じ問題が発生します。この問題を克服する方法はありますか?