模态奏鸣曲管理员中的渲染列表操作
Render list action in modal sonata admin
我尝试在奏鸣曲中以模态呈现我的管理员 class 的列表操作,但找不到正确的方法?
有人可以帮我吗?
我只想要数据网格而不是所有页面(菜单、顶部栏等...)。
其实我是那样做的:
<a href="#" class="btn btn-sm btn-default" data-toggle="modal" data-target="#basicModal1">En Cours modal</a>
<div class="modal fade" id="basicModal1" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
{{render (controller('MonBundle:Controller:list',{'id':object.id}))}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
但是我在渲染时遇到了这个错误:
Error: Call to a member function getRelativePath() on null
显示整个页面是因为您包含了标准控制器操作的模板。 Sonata 使用 app.request.isXmlHttpRequest
的条件来检测视图是以模态(通过 AJAX)还是以标准方式打开的。
所以您可以通过以下步骤解决您的问题:
1) 单击按钮时绑定 JS 函数(打开模式)。
2) 单击按钮时,加载 URL 并将其响应正文粘贴到 .modal-body
URL: {{ path('your-list-action-name', {'id': object.id}) }}
当您从您的页面向列表添加新记录时,它会解决问题,但列表将显示旧记录(因为在您的代码段中,列表呈现一次,在模态首次呈现时)。
可以在 Resources/views/CRUD/edit_orm_many_association_script.html.twig
下的 Sonata 的 ORM Admin Bundle(如果您使用 ORM)中找到其他信息
我尝试在奏鸣曲中以模态呈现我的管理员 class 的列表操作,但找不到正确的方法? 有人可以帮我吗? 我只想要数据网格而不是所有页面(菜单、顶部栏等...)。 其实我是那样做的:
<a href="#" class="btn btn-sm btn-default" data-toggle="modal" data-target="#basicModal1">En Cours modal</a>
<div class="modal fade" id="basicModal1" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
{{render (controller('MonBundle:Controller:list',{'id':object.id}))}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
但是我在渲染时遇到了这个错误:
Error: Call to a member function getRelativePath() on null
显示整个页面是因为您包含了标准控制器操作的模板。 Sonata 使用 app.request.isXmlHttpRequest
的条件来检测视图是以模态(通过 AJAX)还是以标准方式打开的。
所以您可以通过以下步骤解决您的问题:
1) 单击按钮时绑定 JS 函数(打开模式)。
2) 单击按钮时,加载 URL 并将其响应正文粘贴到 .modal-body
URL: {{ path('your-list-action-name', {'id': object.id}) }}
当您从您的页面向列表添加新记录时,它会解决问题,但列表将显示旧记录(因为在您的代码段中,列表呈现一次,在模态首次呈现时)。
可以在 Resources/views/CRUD/edit_orm_many_association_script.html.twig