原则2:使用查询构建器查询可变数量的字段/关联以进行高级搜索

时间:2011-07-06 21:48:55

标签: php doctrine doctrine-orm

我正在尝试构建一个repo函数来搜索具有少量关联的实体。我的问题是,这样做的有效方式是什么?例如,如果我有一个与用户实体关联的项目实体,并允许我的用户按项目名称,用户名,用户公司等搜索项目。在这种情况下,我可能需要加入用户实体,以便设置where子句。但是,我并不总是需要,所以只有当有人想要搜索用户实体属性时才需要设置连接。我应该只是做一个条件stmt来查看是否正在搜索任何用户实体属性,然后才调用qb的join和andWhere方法?或者还有另一种方法吗? THX!

1 个答案:

答案 0 :(得分:1)

使用条件和添加联接以及在哪里应该可以正常工作,如您所述的基本搜索功能。

我自己使用了类似的东西,只要您不需要更高级的关键字匹配等就足够了。

如果你需要更复杂的东西,或者需要更好的性能,你可能应该考虑使用真正的全文搜索引擎,如Lucene,或者Solr和ElasticSearch可能更容易使用PHP而不是原始的Lucene。