2013-05-06 85 views
2

我需要使用相同字符串对多个实体执行搜索,然后对结果进行排序。如何使用Symfony 2在多个实体上执行搜索

我听说/读了一些关于FOSElasticaBundle,这个包是否能够做到这一点?在我看来,为了达到这个目的,几乎有很多功能,我不确定它可以在共享服务器上运行(hostgator)。

其他解决方案,我可以在那一刻想到的是做搜索“手动”(通过使用joinunion),但我想知道我应该把这样的功能:在现有的控制器,一个新的,一个新的包或其他地方? 我担心,以及本手册的解决方案能来有成本的,特别是对一些不可索引的字段。

回答

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(); 

    } 
} 

此类学说中所映射定义和生命的实体文件夹内。检查的文档了你应该有一个基本的想法。

相关问题