Neos\FluidAdaptor\ViewHelpers\Widget\Controller\AutocompleteController::autocompleteAction PHP Method

autocompleteAction() public method

public autocompleteAction ( string $term ) : string
$term string
return string
    public function autocompleteAction($term)
    {
        $searchProperty = $this->widgetConfiguration['searchProperty'];
        /** @var $queryResult QueryResultInterface */
        $queryResult = $this->widgetConfiguration['objects'];
        $query = clone $queryResult->getQuery();
        $constraint = $query->getConstraint();
        if ($constraint !== null) {
            $query->matching($query->logicalAnd($constraint, $query->like($searchProperty, '%' . $term . '%', false)));
        } else {
            $query->matching($query->like($searchProperty, '%' . $term . '%', false));
        }
        if (isset($this->configuration['limit'])) {
            $query->setLimit((int) $this->configuration['limit']);
        }
        $results = $query->execute();
        $output = array();
        $values = array();
        foreach ($results as $singleResult) {
            $val = ObjectAccess::getPropertyPath($singleResult, $searchProperty);
            if (isset($values[$val])) {
                continue;
            }
            $values[$val] = true;
            $output[] = array('id' => $val, 'label' => $val, 'value' => $val);
        }
        return json_encode($output);
    }