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.

<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

# 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

# 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:

<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

# 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:

# 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:

# config/packages/sonata_admin.yaml

sonata_admin:
    global_search:
        empty_boxes: hide

and it looks like this:

Custom view
Previous Next

© Copyright 2010, Thomas Rabaix. Revision 2ae0c57d.

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