Typo3 fe_user получить пользователя только с указанной группой c - PullRequest
1 голос
/ 28 января 2020

У меня есть веб-сайт с внешним интерфейсом. Каждому пользователю назначена определенная c группа пользователей. Чтобы установить порядок группы пользователей, я расширил fe_groups и добавил новый порядок полей. Например, есть три группы grouplevel1, grouplevel2, greouplevel3 имеют порядок 1,2,3 соответственно. модель fe_group ниже

class UserGroup extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup
{
    /**
     * order
     *
     * @var int
     */
    protected $order = null;


    /**
     * Returns the order
     *
     * @return int order
     */
    public function getOrder()
    {
        return $this->order;
    }

    /**
     * Sets the order
     *
     * 
     * @param int order
     * @return void
     */
    public function setOrder(int $order)
    {
        $this->order = $order;
    }

}

В моей системе пользователи изначально находятся в группе grouplevel1, через некоторое время пользователь получает grouplevel2 и grouplevel3. Мне нужно отфильтровать пользователей в grouplevel1. Когда я пытаюсь вызвать свою функцию, она возвращает пользователей со всеми тремя группами. Мне нужно отфильтровать пользователя только с одной группой. Как написать метод хранилища? Я попытался выполнить следующий запрос, но он не соответствует моим требованиям.

public function getFilteredList($groups){
   $query = $this->createQuery();
   $constraints = [];
   $userGroupArray = array_map('intval', $groups);
   $constraints[] = $query->in('usergroup', $userGroupArray);
   $query->matching($query->logicalAnd($constraints));
   return $query->execute();
}
...