在我的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。