繁体   English   中英

在理论上与邻居建立多对多关系

Get neighbors in many to many relation with doctrine

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

许多用户实体在注释中使用联合表具有许多房屋实体

class User
{
    /**
     * @ORM\ManyToMany(targetEntity="House")
     * @ORM\JoinTable(name="house_user",
     *   joinColumns={@ORM\JoinColumn(name="user_uuid", rerencedColumnName="uuid") },
     *   inverseJoinColumns={@ORM\JoinColumn(name="house_uuid", ferencedColumnName="uuid") }
     *   }
     * )
     */
    public $houses;

我需要从给定用户(包括用户本身)居住的所有房屋中获得所有邻居。 我还需要得到这个邻居的反对。

使用SQL,我可以通过联接表2次来获得此:

select DISTINCT usr.*
FROM users usr
       LEFT JOIN house_user houseDUser ON houseDUser.user_uuid = 'uuid-v4-goes-here'
       LEFT JOIN house h on houseDUser.housing_complex_uuid = h.uuid
       LEFT JOIN house_user houseUser ON houseUser.housing_complex_uuid = h.uuid
WHERE usr.uuid = houseUser.user_uuid

因此,我可以使用QueryBuilder与邻居取得联系(但我认为不是那么优雅):

    $qb = $this->reateQueryBuilder('usr')
        ->addSelect('users')
        ->leftJoin(HouseUser::class, 'houses', Join::WITH, 'usr MEMBER OF houses.users')
        ->leftJoin(User::class, 'users', Join::WITH, 'users MEMBER OF houses.users')
        ->where('usr = :userUuid')
        ->setParameter('userUuid', (string)$user->getUuid());

    $paginator = new Paginator($qb);
    $count = count($paginator);

但是,我每次都得到1分。 有正确的方法来执行这样的查询吗?

问题暂未有回复.您可以查看右边的相关问题.
1 教义多对多关系

我没有为我的问题弄清楚正确的Doctrine SQL / DQL。 问题是,考虑到我是“用户1”,我需要按照以下结构列出我的ChatRoom中的所有用户。 聊天室1: 用户1 用户2 聊天室2: 用户1 用户3 聊天室3: ...

2 原则中的一对多关系

我有2张桌子 用户数 消息 和表的结构: 用户: 消息: 现在看到在Users表中有许多用户,他们的消息存储在Messages表中,由fk_user_Id标识。 如何在这两个表之间建立一对多关系或如何使用Doctrine / Annotati ...

4 教义:让所有孩子具有多对多关系

我需要一个DQL查询,该查询将返回给定tag所有posts 。 posts和tags具有多对多关系,给定一个tag.slug我应该能够获取与该标签有关的所有帖子,但是如何? 更新: 我在Symfony 2中使用Doctrine 2.1,我的实体看起来像这样: ...

5 原则clear()和多对一关系

我需要从csv文件(约1m条记录)中导入大数据。 为了避免内存泄漏,我尝试从原则文档中进行批量插入: 问题是我的插入内容包含“多对一”关系,并且每次我使用clear()对象从该关系中重复条目时。 是否有可能分离实体并避免重复? ...

6 原则-一对多关系的FindBy

假设我有“产品”实体 和ProductLang实体 如您所见,Product和ProductLang之间存在一对多连接 问题是,是否有可能使用“产品”存储库中的学说的“ findBy()”方法来基于productLang.name查找产品? 我知道我可以做类似的事情 ...

7 原则中的一对多和一对多关系

我有2张桌子 用户数 消息 和表的结构: 用户: 消息: 现在看到“用户”表中有许多用户,他们的消息存储在“消息”表中,由sender_id和receiver_id标识 如何在这两个表之间建立一对多和多对一关系或使用“学说/注释”创建此SQL ...

9 在多对多关系中使用 Doctrine QueryBuilder 进行 NOT IN 查询

在我的 Symfony2 项目中,我有两个实体“联系人”和“设置”,具有多对多关系: 实体设置有一个属性“parametre”,它是一个简单的字符串。 现在我想获取所有没有任何“参数”为“主题”设置的联系人。 我可以在 SQL 中使用以下查询来做到这一点: 但是我不知道如何使用 Doct ...

10 在Doctrine中定制多对多关系

假设我想在Doctrine中实现以下实体: Thing代表任何可以对另一件Thing采取行动的Thing 。 Relation可以包含两个实体和操作的描述,其元组是唯一的。 以下是我正在尝试实现的一些示例: 母鸡(东西)躺(动作)蛋(东西) 水(东西)熄灭(动作 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM