SonataAdminBundle
4.x

Getting Started

  • 1. Installation
  • 2. Creating an Admin
  • 3. The Form View
  • 4. The List View
  • 5. The Show View

Reference Guide

  • 1. Configuration
  • 2. Architecture
  • 3. Create child admins
  • 4. Dashboard
  • 5. Search
    • 5.1. Disabling the search by admin
    • 5.2. Customization
      • 5.2.1. Configure the search templates
      • 5.2.2. Configure the default search result actions
      • 5.2.3. Customize visibility of empty result boxes
  • 6. The List View
  • 7. Creating and Editing objects
  • 8. The Show action
  • 9. Deleting objects
  • 10. The Export action
  • 11. Saving hooks
  • 12. Form Types
  • 13. Field Types
  • 14. Batch actions
  • 15. Console/Command-Line Commands
  • 16. Troubleshooting
  • 17. The breadcrumbs builder

Advanced Options

  • 1. Routing
  • 2. Translation
  • 3. Templates
  • 4. Security
  • 5. Customize admin
  • 6. Events
  • 7. Advanced configuration
  • 8. Preview Mode

Cookbook

  • 1. Select2
  • 2. iCheck
  • 3. Jquery UI
  • 4. KnpMenu
  • 5. Uploading and saving documents (including images) using DoctrineORM and SonataAdmin
  • 6. Showing image previews
  • 7. Row templates
  • 8. Sortable behavior in admin listing
  • 9. Modifying form fields dynamically depending on edited object
  • 10. Creating a Custom Admin Action
  • 11. Decouple from CRUDController
  • 12. Customizing a mosaic list
  • 13. Overwrite Admin Configuration
  • 14. Improve Performance of Large Datasets
  • 15. Virtual Field Descriptions
  • 16. Bootlint
  • 17. Lock Protection
  • 18. Sortable Sonata Type Model in Admin
  • 19. Deleting a Group of Fields from an Admin
  • 20. Using DataMapper to work with domain entities without per field setters
  • 21. Persisting Filters
  • 22. Integrate Symfony Workflow Component
  • 23. SonataAdmin without SonataUserBundle
SonataAdminBundle
  • »
  • 5. Search
  • Edit on GitHub

5. Search¶

The admin comes with a basic global search available in the upper navigation menu. The search iterates over admin classes and looks for filters implementing the Sonata\AdminBundle\Search\SearchableFilterInterface interface with the method isSearchEnabled() returning true. If you are using SonataDoctrineORMBundle, the Sonata\DoctrineORMAdminBundle\Filter\StringFilter filter is searchable and relies on a global_search option.

Note

The current implementation can be expensive if you have a lot of entities as the resulting query does a LIKE %query% OR LIKE %query%…

5.1. Disabling the search by admin¶

You can disable the search for a whole admin by setting the global_search attribute to false at your admin definition using the tag sonata.admin.

  • XML
    1
    2
    3
    <service id="app.admin.post" class="App\Admin\PostAdmin">
        <tag name="sonata.admin" global_search="false" model_class="App\Entity\Post" manager_type="orm" group="Content" label="Post"/>
    </service>
    

5.2. Customization¶

5.2.1. Configure the search templates¶

The main action is using the template @SonataAdmin/Core/search.html.twig. And each search is handled by a block, the template for the block is @SonataAdmin/Block/block_search_result.html.twig.

The default template values can be configured in the configuration section

  • YAML
    1
    2
    3
    4
    5
    6
    7
    # config/packages/sonata_admin.yaml
    
    sonata_admin:
        templates:
            # other configuration options
            search:              '@SonataAdmin/Core/search.html.twig'
            search_result_block: '@SonataAdmin/Block/block_search_result.html.twig'
    

You also need to configure the block in the sonata block config

  • YAML
    1
    2
    3
    4
    5
    6
    # config/packages/sonata_admin.yaml
    
    sonata_block:
        blocks:
            sonata.admin.block.search_result:
                contexts: [admin]
    

You can also configure the block template per admin while defining the admin:

  • XML
    1
    2
    3
    4
    5
    6
    7
    <service id="app.admin.post" class="App\Admin\PostAdmin">
          <tag name="sonata.admin" model_class="App\Entity\Post" manager_type="orm" group="Content" label="Post"/>
          <call method="setTemplate">
              <argument>search_result_block</argument>
              <argument>@SonataPost/Block/block_search_result.html.twig</argument>
          </call>
      </service>
    

5.2.2. Configure the default search result actions¶

In general the search result generates a link to the show action of an item or displayed as a text if the show route is disabled or you haven’t the required permission. You can change this behavior by overriding the option

1
2
3
4
5
# config/packages/sonata_admin.yaml

sonata_admin:
    global_search:
        admin_route: edit

5.2.3. Customize visibility of empty result boxes¶

By default all the admin boxes are shown in search results and it looks like this:

Custom view

We can fade out the boxes that have no results with:

1
2
3
4
5
# config/packages/sonata_admin.yaml

sonata_admin:
    global_search:
        empty_boxes: fade

and it looks like this:

Custom view

The third option is to hide the empty boxes:

1
2
3
4
5
# config/packages/sonata_admin.yaml

sonata_admin:
    global_search:
        empty_boxes: hide

and it looks like this:

Custom view
Next Previous

© Copyright 2010-2021, Thomas Rabaix. Revision bcca5a53.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: 4.x
Versions
5.x
4.x
3.x
jordisala1991-patch-1
Downloads
On Read the Docs
Project Home
Builds