Управляйте группами на разных страницах с помощью sfDoctrineGuardPlugin

я использую sfDoctrineGuardPlugin, но я хотел бы немного изменить, у меня есть 2 группы (администраторы, пользователи), и я хочу управлять ими отдельно, что я имею в виду, это страница, которая показывает мне только группу «администраторы», а еще одна группа «пользователи», я хочу этого, потому что пользователи в группе «пользователи» будут иметь некоторую дополнительную информацию и поведение, я уже создал пустой модуль «sfGuardUser» в своем бэкэнд-приложении, поэтому я могу перезаписать и добавить все, что я хочу, я создаю де действия.class.php

class sfGuardUserActions extends autoSfGuardUserActions
{
    public function executeAdmins(sfWebRequest $request)
    {
        // sorting
        if ($request->getParameter('sort') && $this->isValidSortColumn($request->getParameter('sort')))
        {
            $this->setSort(array($request->getParameter('sort'), $request->getParameter('sort_type')));
        }

        // pager
        if ($request->getParameter('page'))
        {
            $this->setPage($request->getParameter('page'));
        }

        $this->pager = $this->getPager();
        $this->sort = $this->getSort();
    }
}

я точно скопировал функцию "executeIndex" из класса "autoSfGuardUserActions" в кеш, и теперь я могу перейти к guard/admin, и она действует как функция по умолчанию, но теперь, как я могу показать только пользователей из группы "admins"?


person Castro Roy    schedule 05.04.2011    source источник


Ответы (1)


Вы должны изменить метод buildQuery().

person Darmen Amanbayev    schedule 06.04.2011
comment
хорошо, но как я могу идентифицировать группы, иногда я хочу показать одну группу, иногда другую - person Castro Roy; 06.04.2011
comment
getPager() вызывает buildQuery(), поэтому вы можете передать объект getPager() в executeIndex() - person Darmen Amanbayev; 07.04.2011