Example #1
0
 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);
     }
 }
Example #2
0
 public function searchableContent()
 {
     return array_merge(parent::searchableContent(), [$this->summary, implode(' ', \Coast\array_column($this->blocks, 'value'))]);
 }