如何编写 DQL select 语句来搜索单表继承表中的部分实体,但不是全部实体
所以我在一张表中有 3 个实体。我需要能够在一个 select 语句中搜索 3 个实体中的 2 个,但我不知道如何执行此操作。
So I have 3 entities within one table. I need to be able to search 2 out of the 3 entities in one select statement, but I'm not sure how to do this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 dql 查询中使用 INSTANCE OF 运算符,如下所示(其中 User 是您的基类):
Doctrine 在 sql 查询中将其转换为 WHERE user.type = '...' 条件。
请参阅此处 有关 dql 查询语法的更多详细信息。
Use the
INSTANCE OF
operator in your dql query like this (whereUser
is your base class):Doctrine translates this in the sql query in a
WHERE user.type = '...'
condition.See here for more details on the dql query syntax.
多个实例的答案实际上不起作用。您必须执行类似的操作来检查多个实例。
The answer for multiple instances actually doesn't work. You would have to do something like this to check for multiple instances.
作为由 flu 评论,如果如果您想使用 QueryBuilder 而不是 DQL 查询从不同实例检索一些实体,您可以使用数组作为参数:
As commented by flu, if you want to retrieve some entities from different instances with a QueryBuilder instead of a DQL query, you can use an array as parameter: