public function searchable_modify(QueryBuilder $query, array $params = array()) { $alias = isset($alias) ? $alias : $this->alias(); $params = $params + ['search' => null]; if (isset($params['search'])) { $info = Chalk::info($this->_class->name); $classes = array_merge([$info->class], $this->_em->getClassMetadata($info->class)->subClasses); $results = $this->_em->getRepository('Chalk\\Core\\Index')->search($params['search'], $classes); $ids = \Coast\array_column($results, 'entityId'); $query->andWhere("{$alias}.id IN (:ids)")->orderBy("FIELD({$alias}.id, :ids)")->setParameter('ids', $ids); } }
public function searchableContent() { return array_merge(parent::searchableContent(), [$this->summary, implode(' ', \Coast\array_column($this->blocks, 'value'))]); }