Symfony2: Как интегрировать разбиение на страницы в sonataAdminBundle?

Мне нужно, чтобы нумерация страниц была интегрирована в мой Backend. Я использую sonataAdminBundle. Существует класс Sonata\AdminBundle\Admin\Admin, у которого есть свойство с именем $maxPerPage = 25;

Итак, как мне переопределить этот класс, чтобы все мои другие классы администратора могли иметь разбиение на страницы без повторения кода.

Спасибо!


person VishwaKumar    schedule 06.04.2012    source источник


Ответы (1)


Используйте внедрение зависимостей. В файле services.xml вы можете добавить любые методы, которые должны вызываться при создании службы администрирования.

Файл: ../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>
person pulzarraider    schedule 15.04.2012