presta/sonata-saved-filters-bundle

一个 Symfony 扩展包,允许用户在 Sonata Admin 中保存和分享筛选器

v1.1.0 2024-08-01 14:37 UTC

This package is auto-updated.

Last update: 2024-09-01 14:46:24 UTC


README

PrestaSonataSavedFiltersBundle 允许您的 Sonata 用户保存和共享列表筛选器。

预览

在每一个管理界面,您可以将当前的筛选器保存到一个专用的数据库条目中,在命名后。 Save filter form

当您保存了一个筛选器后,您可以在创建它的管理界面中随时重新应用它。 Saved filters dropdown

存在一个管理界面,您可以在其中查看、分享和删除在应用程序中创建的筛选器。 Saved filters admin list

安装

使用以下命令安装扩展包

$ composer require presta/sonata-saved-filters-bundle

启用扩展包

# config/bundles.php
return [
+    Presta\SonataSavedFiltersBundle\PrestaSonataSavedFiltersBundle::class => ['all' => true],
];

配置

将我们的 JavaScript 导入到项目中

import '../../public/bundles/prestasonatasavedfilters/scripts/app';

这一步高度依赖于您的公共资源是如何构建和导入的,这取决于您知道如何最好地将它包含到项目中。

将我们的动作模板包含到您配置为管理布局的 Twig 模板中

{% extends '@SonataAdmin/standard_layout.html.twig' %}

{% block sonata_admin_content_actions_wrappers %}
    {{ parent() }}
    {{ include('@PrestaSonataSavedFilters/saved_filters_action.html.twig') }}
{% endblock %}

参见相关的 SonataAdmin 文档

配置 doctrine,指定哪些实体将附加到保存的筛选器 config/packages/doctrine.yaml

<?php

use Doctrine\ORM\Mapping as ORM;
use Presta\SonataSavedFiltersBundle\Entity\SavedFiltersOwnerInterface;
use Symfony\Component\Security\Core\User\UserInterface;

#[ORM\Entity]
class User implements UserInterface, SavedFiltersOwnerInterface
{
}
# config/packages/doctrine.yaml
doctrine:
  orm:
    resolve_target_entities:
      Presta\SonataSavedFiltersBundle\Entity\SavedFiltersOwnerInterface: 'App\Entity\User'

参见相关的 DoctrineBundle 文档

将管理界面添加到您想要的位置的菜单中

# config/packages/sonata_admin.yaml
sonata_admin:
    dashboard:
        groups:
          the_group_in_which_you_want_the_admin:
                items:
                    - presta_sonata_saved_filters.saved_filters

最后,更新您的模式以创建所需为实体而创建的表

$ bin/console doctrine:schema:update 

或者,如果您安装了 DoctrineMigrationsBundle,创建一个迁移

$ bin/console doctrine:migrations:diff
$ bin/console doctrine:migrations:migrate

该项目由 PrestaConcept 支持

MIT 许可证 下发布