В моей flexform у меня есть поле выбора (тип). В модели также есть поле (тип). Как я могу расширить свой репозиторий для фильтрации значения (тип) здесь?
Репозиторий: https://pastebin.com/MuWtaK7d
public function findDemanded($demand) {
$query = $this -> createQuery();
$query -> getQuerySettings() -> setRespectStoragePage(FALSE);
#$query -> setOrderings($this -> createOrdering());
$constraints = $this -> createConstraintsFromDemand($query, $demand);
if (!empty($constraints)) {
$query -> matching(
$query -> logicalAnd($constraints)
);
}
return $query -> execute();
}
protected function createConstraintsFromDemand(\TYPO3\CMS\Extbase\Persistence\QueryInterface $query, $demand) {
$constraints = array();
$categories = $demand -> getCategories();
if ((!empty($categories))) {
$categoryConstraints = array();
$categories = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $categories, TRUE);
foreach ($categories as $category) {
$categoryConstraints[] = $query -> contains('categories', $category);
}
$constraints = $query -> logicalOr($categoryConstraints);
}
return $constraints;
}
Контроллер: https://pastebin.com/wtd25Zxb
public function listAction()
{
$demand = $this -> createDemandObjectFromSettings($this -> settings);
$entries = $this -> xxxRepository -> findDemanded($demand);
$this -> view -> assign('xxx', $entries);
}
protected function createDemandObjectFromSettings($settings)
{
$demand = $this->objectManager->get('xxx\\xxx\\Domain\\Model\\xxx');
$demand->setCategories($settings['categories']);
$demand->setType($settings['typ']);
return $demand;
}
Спасибо за вашу помощь. Я использую TYPO3 8.7.