У меня есть веб-сайт с внешним интерфейсом. Каждому пользователю назначена определенная 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();
}