/** * {@inheritdoc} */ protected function getSearchFields(SearchQueryInterface $search) { $fields = array('e.constructName', 'ts.name', 'ts.genotype', 'tsvs.name', 'tsvs.genotype'); if ($search instanceof SearchQuery ? $search->searchNotes() : false) { $fields[] = 'e.notes'; } return $fields; }
/** * {@inheritdoc} */ protected function getSearchFields(SearchQueryInterface $search) { $fields = array('e.maleName', 'e.virginName'); if ($search instanceof SearchQuery ? $search->searchNotes() : false) { $fields[] = 'e.notes'; } return $fields; }
/** * Create DQL expression from search terms * * @param VIB\SearchBundle\Search\SearchQueryInterface $search * @return \Doctrine\ORM\Query\Expr */ protected function getSearchExpression(SearchQueryInterface $search) { $eb = $this->getEntityManager()->getExpressionBuilder(); $expr = $eb->andX(); foreach ($search->getTerms() as $term) { $subexpr = $eb->orX(); foreach ($this->getSearchFields($search) as $field) { $subexpr->add($eb->like($field, '\'%' . $term . '%\'')); } $expr->add($subexpr); } foreach ($search->getExcluded() as $term) { $subexpr = $eb->andX(); foreach ($this->getSearchFields($search) as $field) { $subexpr->add($eb->not($eb->like($field, '\'%' . $term . '%\''))); } $expr->add($subexpr); } return $expr; }
/** * {@inheritdoc} */ protected function getSearchFields(SearchQueryInterface $search) { $fields = array('e.name', 'e.genotype'); if ($search instanceof SearchQuery ? $search->searchNotes() : false) { $fields[] = 'e.notes'; } if ($search instanceof SearchQuery ? $search->searchVendor() : false) { $fields[] = 'e.vendorId'; } return $fields; }