作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个具有多对多关系的实体,如下所示:
User
{
/**
* @var Group[]
*
* @ORM\ManyToMany(targetEntity="Group", inversedBy="users")
* @ORM\JoinTable(
* name="user_group",
* joinColumns={
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="group_id", referencedColumnName="id")
* }
* )
*/
protect $groups
}
Group
{
/**
* @var User[]
*
* @ORM\ManyToMany(targetEntity="User", mappedBy="groups")
*/
private $users;
}
这会在数据库上创建 3 个表:
是否可以在 DQL 中操作 user_group?我正在尝试这样的事情:
SELECT *
FROM user u
WHERE EXISTS
(SELECT ug.user_id FROM user_group ug WHERE ug.user_id = u.id AND ug.group_id = 3)
这行不通,因为它应该写成实体。我可以使用 Native SQL 运行它,但我想确保没有更好的解决方案
最佳答案
Jonathan Martinez
的解决方案有效,但我发现这更简单(特别是因为我也可以使用 NOT MEMBER OF):
$query = $em->createQuery('SELECT u.id FROM User u WHERE :groupId MEMBER OF u.groups');
$query->setParameter('groupId', $group);
更多相关信息,请点击此处:
关于sql - 具有 ManyToMany 关系的 Doctrine NOT EXIST 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43040587/
我是一名优秀的程序员,十分优秀!