Sonata Admin Bundle 在编辑时丢失过滤器设置
Sonata Admin Bundle loosing filter settings on edit
根据索纳塔手册,我为一些实体创建了一个标准的简单管理。
问题是配置的过滤器在编辑实体时会丢失。假设我设置了 3 个过滤器值,然后单击一个实体进行编辑。 "Save" 和操作 "Back to list" 都没有让我回到筛选列表。连分页又从1开始。
如何保留设置的过滤器?
这是管理员示例 class:
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;
}
}
您的过滤器在离开列表视图后丢失了。重新打开列表(不返回相同的 URL)将始终生成您预配置的过滤器,您可以在每个管理员-class.
上定义这些过滤器
只需根据配置启用持久过滤器。请注意,这些会保留到您的用户会话中,这意味着它们只会在您按下按钮 "reset filters".
时重置或更改
您可以像这样轻松激活该选项:
sonata_admin:
persist_filters: true
没有专门的文档,但您可以在SonataAdmin Full Configuration Options中找到该选项。
根据索纳塔手册,我为一些实体创建了一个标准的简单管理。 问题是配置的过滤器在编辑实体时会丢失。假设我设置了 3 个过滤器值,然后单击一个实体进行编辑。 "Save" 和操作 "Back to list" 都没有让我回到筛选列表。连分页又从1开始。
如何保留设置的过滤器?
这是管理员示例 class:
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;
}
}
您的过滤器在离开列表视图后丢失了。重新打开列表(不返回相同的 URL)将始终生成您预配置的过滤器,您可以在每个管理员-class.
上定义这些过滤器只需根据配置启用持久过滤器。请注意,这些会保留到您的用户会话中,这意味着它们只会在您按下按钮 "reset filters".
时重置或更改您可以像这样轻松激活该选项:
sonata_admin:
persist_filters: true
没有专门的文档,但您可以在SonataAdmin Full Configuration Options中找到该选项。