/** * Sets the search constraint to the given constraints array * * @param \TYPO3\CMS\Extbase\Persistence\QueryInterface $query Query * @param \DERHANSEN\SfEventMgt\Domain\Model\Dto\EventDemand $eventDemand EventDemand * @param array $constraints Constraints * * @return void */ protected function setSearchConstraint($query, $eventDemand, &$constraints) { if ($eventDemand->getSearchDemand() && $eventDemand->getSearchDemand()->getSearch() !== null && $eventDemand->getSearchDemand()->getSearch() !== '') { $searchFields = GeneralUtility::trimExplode(',', $eventDemand->getSearchDemand()->getFields(), true); $searchConstraints = []; if (count($searchFields) === 0) { throw new \UnexpectedValueException('No search fields defined', 1318497755); } $searchSubject = $eventDemand->getSearchDemand()->getSearch(); foreach ($searchFields as $field) { if (!empty($searchSubject)) { $searchConstraints[] = $query->like($field, '%' . $searchSubject . '%', false); } } if (count($searchConstraints)) { $constraints[] = $query->logicalOr($searchConstraints); } } }