2012-04-06 13 views
0

Ich muss Paginierung in meinem Backend integriert haben. Ich benutze sonataAdminBundle. Diese Sonata \ AdminBundle \ Admin \ Admin-Klasse verfügt über eine Eigenschaft namens $ maxPerPage = 25;Symfony2: Wie integriere ich Paginierung in SonateAdminBundle?

Also, wie überschreibe ich diese Klasse, so dass alle meine anderen Admin-Klassen Paginierung ohne Code wiederholen können.

Danke!

Antwort

2

Verwenden Sie Dependency Injection. In der Datei services.xml können Sie alle Methoden hinzufügen, die beim Erstellen Ihres Verwaltungsdienstes aufgerufen werden müssen.

Datei: ../YourAdminBundle/Resources/config/services.xml:

<?xml version="1.0" ?> 
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> 

    <parameters> 
     <!-- You define the maxpage only once --> 
     <parameter key="admin_max_per_page_number">10</parameter> 
    </parameters> 
    <services> 

     <service id="xyz_admin" class="Abc\Bundle\YourAdminBundle\Admin\XyzAdmin"> 
      <tag name="sonata.admin" manager_type="orm" group="xyz_group" label="Xyz"/> 
      <argument /> 
      <argument>Abc\Bundle\YourAdminBundle\Entity\Xyz</argument> 
      <argument>SonataAdminBundle:CRUD</argument> 

      <call method="setMaxPerPage"> 
       <argument>%admin_max_per_page_number%</argument> 
      </call> 
     </service> 

     <!-- ... another admin services... --> 
    </services> 
</container> 
Verwandte Themen