Persisting Filters
Persisting filters allow your application to save the filters the authenticated user has submitted. Then the saved filters will be reused if the page is displayed again.
Enable Filters Persistence
By default, filters persistence is disabled.
You can enable it in your sonata_admin
configuration :
1 2 3 4
# config/packages/sonata_admin.yaml
sonata_admin:
persist_filters: true
Choose the persistence strategy
When you enable the filters persistence by setting persist_filters
to true
.
SonataAdmin will use the default filter persister :
Sonata
(which is, by now, the only one provided).
You can implement your own filter persister by creating a new class that
implements the Sonata
interface and registering it as a service.
Then the only thing to do is to tell SonataAdmin to use this service as
filter persister.
Globally :
1 2 3 4 5
# config/packages/sonata_admin.yaml
sonata_admin:
persist_filters: true
filter_persister: filter_persister_service_id
Per Admin :
1 2 3 4 5 6 7 8 9 10 11
# config/services.yaml
services:
app.admin.user:
class: App\Admin\UserAdmin
tags:
-
name: sonata.admin
model_class: App\Entity\User
manager_type: orm
filter_persister: filter_persister_service_id
Disable filters persistence for some Admin
When you enable the filters persistence by setting persist_filters
to true
.
All registered Admins will have the feature enabled.
You can disable it per Admin if you want.
1 2 3 4 5 6 7
# config/services.yaml
services:
app.admin.user:
class: App\Admin\UserAdmin
tags:
- { name: sonata.admin, model_class: App\Entity\User, manager_type: orm, persist_filters: false }
Note
Both persist_filters
and filter_persister
can be used globally
and per-admin, which provide you the most flexible way to configure
this feature.