使用Doctrine搜索多个参数

时间:2012-01-27 12:50:15

标签: search doctrine symfony

我是Symfony2的初学者,我在使用Doctrine时遇到了问题。 我已经为现有数据库创建了一个实体,我可以使用Doctrine在数据库中使用findById,findByAuthor等函数进行搜索。 我的下一步是创建一个HTML表单,用户可以在其中输入多个参数。 我的目标是,Doctrine现在在数据库中搜索所有实体,这些实体匹配所有/至少一个参数。 我希望我可以使用输入数据的实体来做到这一点,但我不知道如何。

希望你理解我的意思并且可以帮助我:)。

迎接

2 个答案:

答案 0 :(得分:0)

您需要使用自定义查询执行此操作。这主要是通过DQL完成的。

至于使这个无缝,你需要创建一个custom repository类,如果尚未完成查询。这似乎有点开销。我经历了寻找替代品的那个阶段。但最后,它很简单。

当要求实体类型的存储库时,Doctrine将只为您提供您的类的实例,它将是透明的。

答案 1 :(得分:0)

对于简单条件,您可以使用findBy方法。 使用$em实体管理器

$em->getRepository('YourBundle:YourEntity')->findBy(array(
    'id' => $id, 
    'author' => $author));

更多信息with the Doctrine documentation

对于更复杂的条件,您必须使用DQL