Sonata Admin中编辑模型的模态窗口

时间:2014-04-10 19:42:14

标签: symfony modal-dialog sonata-admin

如何在SonataAdminBundle中设置Admin类,以显示在模态窗口中添加/编辑实体的表单?如下所示:

enter image description here

2 个答案:

答案 0 :(得分:2)

手动,你可以自己做。

  1. 添加您的配置服务

    calls:
    - [ setTemplate, [list, AcmeYourBundle:Your:base_list.html.twig]]
    - [ setTemplate, [edit, AcmeYourBundle:Your:base_edit.html.twig]]
    
  2. 在您的管理包中,在configureListFields

    中添加自定义模板
    protected function configureListFields(ListMapper $listMapper) {
      $listMapper
        ->add('_action', 'actions', array(
          'actions' => array(
            'edit' => array('template' => 'AcmeYourBundle:Your:_action_edit.html.twig'),
          )
        ));
    }
    
  3. _action_edit.html.twig

    {% if admin.hasRoute('edit') and admin.id(object) and admin.isGranted('EDIT', object)%}
      <a class="edit sonata-action-element" href="{{ admin.generateObjectUrl('edit', object) }}">
        <i class="fa fa-edit"></i>
        {{ 'link_action_edit'|trans({}, 'SonataAdminBundle') }}
      </a>
    {% endif %}
    
  4. 在base_list.html.twig中添加javascript代码

    <script type="text/javascript">
      $(document).ready(function() {
        $('a.edit').click(function() {   //bind handlers
            var url = $(this).attr('href');
            showDialog(url);
            return false;
        });
    
        $("#targetDiv").dialog({
          autoOpen: false,
          height: 700,
          width: 950,
          modal: true
        });
    
        function showDialog(url) {  
          $("#targetDiv").load(url);
          $("#targetDiv").dialog("open");
        }
      });
    
    </script>
    
  5. 完成!享受它。

答案 1 :(得分:0)

目前尚不支持此功能,这是一项计划功能,但暂时没有ETA。