2013-05-06 2 views
2

Мне нужно выполнить поиск по нескольким объектам с той же строкой, а затем упорядочить результаты.Как выполнить поиск по нескольким объектам с помощью Symfony 2

Я слышал/читал немного о FOSElasticaBundle, мог ли этот комплект сделать это? Мне кажется, что для этого у меня почти много функций, и я не уверен, что он может работать на общем сервере (hostgator).

Другое решение, которое я могу представить на данный момент, выполняет поиск вручную (используя join и union), но мне интересно, где я должен использовать такую ​​функцию: в существующем контроллере новый, новый пакет или где-то еще? Я также обеспокоен тем, что это руководство может стоить дорого, особенно в некоторых неиндексируемых областях.

ответ

0

Вы бы сделали пользовательские репозитории объектов. Выезд the docs. В основном это распространяется по умолчанию FindAll, FindOneBy и т.д.

Вы бы иметь функцию, как так:

class MyEntityRepository extends Doctrine\ORM\EntityRepository { 
    public function findByCustomRule(){ 
     //this is mapped to your entity (automatically adds the select) 
     $queryBuilder = $this->createQueryBuilder('someAlias'); 
     $queryBuilder->orderBy('...'); 

     //this is mapped to any entity 
     $queryBuilder = $this->getEntityManager()->createQueryBuilder(); 
     $queryBuilder->select('...'); 


     //result 
     $result = $queryBuilder->getQuery()->getResult(); 

    } 
} 

Этот класс определен в отображении доктрины и живет внутри папки Entity .. Проверьте документы из и вы должны получить основную идею.

Смежные вопросы