Sonata Admin Bundle在编辑时丢失过滤器设置

Mar*_* K. 2 symfony sonata-admin

根据Sonata手册,我为一些实体创建了一个标准的简单管理员.问题是编辑enity时配置的过滤器会丢失.假设我设置了3个过滤器值,然后单击实体进行编辑."保存"和"返回列表"操作都不会将我带回已过滤的列表.甚至分页也从1开始.

如何保留设置过滤器?

这是一个示例管理类:

namespace AppBundle\Admin;


use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;

/**
 * Description of OrtAdmin
 *
 * @author markus
 */
class OrtAdmin extends AbstractAdmin{
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
            ->add('name', 'text');

}

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper->add('name');
}

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
            ->addIdentifier('name', 'string');

}

//Remove some export formats
public function getExportFormats() {
    return array(
        'csv', 'xls'
    );
}

//No batch actions
public function getBatchActions() {
    $actions = parent::getBatchActions();
    unset($actions['delete']);

    return $actions;
}    
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ler 6

离开列表视图后,您的过滤器会丢失.重新打开列表(不返回相同的URL)将始终生成预先配置的过滤器,您可以在每个Admin-class上定义这些过滤器.

只需为每个配置启用持久过滤器 请注意,这些内容会持续存在于用户的会话中,这意味着只有按下"重置过滤器"按钮才会重置或更改这些内容.

您可以轻松激活如下选项:

sonata_admin:
    persist_filters: true
Run Code Online (Sandbox Code Playgroud)

没有专门的文档,但您可以在SonataAdmin完整配置选项中找到该选项.