我有典型的奏鸣曲管理员列表操作createQuery, configureFormFields, etc。我如何呈现标准页面但如果用户不选择任何过滤器,我只向他显示“选择任何过滤器以获得结果”?
我可以使用已hasFilters检查但查询仍然执行。
{% if admin.hasFilters() %}
{{ parent() }}
{% else %}
我需要一些这样的,但没有对数据库执行任何查询。
// SomeController
public function listAction()
{
if (!$this->admin->hasFilters()) {
return $this->renderWithExtraParams($this->admin->getTemplate('list'), [
'action' => 'list',
'form' => $this->admin->getDatagrid()->getForm()->createView(),
'csrf_token' => $this->getCsrfToken('sonata.batch'),
'export_formats' => $this->has('sonata.admin.admin_exporter') ?
$this->get('sonata.admin.admin_exporter')->getAvailableFormats($this->admin) :
$this->admin->getExportFormats(),
], null);
}
return parent::listAction();
}