/** * Initialize properties */ protected function initializeProperties() { if ($this->propertiesList !== null) { return; } $this->propertiesList = new \SplDoublyLinkedList(); foreach ($this->schemaProvider->getSchema()->getFields() as $field) { $property = $field->getProperty() ?: $field->getName(); $this->propertiesList->push($property); } }
/** * Process global search * * @param Criteria $criteria * @param RequestInterface $request */ protected function processGlobalSearch(Criteria $criteria, RequestInterface $request) { $query = $request->getGlobalSearch(); if ($query === null) { return; } $condition = call_user_func_array([Criteria::expr(), 'orX'], array_map(function ($name) use($query) { return Criteria::expr()->contains($name, $query); }, $this->schemaProvider->getSchema()->getGloballySearchableNames())); $criteria->andWhere($condition); }