php - Doctrine 加入一张 table 有两个

标签 php mysql symfony doctrine-orm doctrine

早上好,如下图所示,我链接了一些表。

EER

使用 Doctrine (在 Symfony2 中) 我正在尝试获取一个 对象问题数组,它本身包含所有 IssueMessages IssueStatusChanged 对象但不能。

我不知道如何通过它们的标识符加入两个表(IssueMessage 和 IssueStatusChanged)

我们所做的最多是获取所有问题的邮件帐户:

$dql = 'SELECT x, COUNT(im.id) FROM PanelBundle:Issue x LEFT JOIN PanelBundle:IssueMessages im WITH x.id = im.idIssue';

有人可以帮我吗?

谢谢!

最佳答案

您想使用 assication mapping ;这将使 Doctrine 为您管理所有连接。

一旦就位,$issue 将始终自动提供其他关联模型,您无需担心连接问题。

对于下面的示例(假设您使用注释),要获取问题的消息,只需获取问题对象,然后使用 $issue->getMessages();

<?php

/** @Entity */
class issue
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    // ...

    /**
     * @OneToMany(targetEntity="issueMessages", mappedBy="issue")
     */
    private $messages;

    // ...

    public function __construct()
    {
        $this->messages = new Doctrine\Common\Collections\ArrayCollection();
    }
}

/** @Entity */
class issueMessages
{
    // ...

    /**
     * @ManyToOne(targetEntity="issue", inversedBy="messages")
     * @JoinColumn(name="issue_id", referencedColumnName="id")
     */
    private $issue;

    // ...
}

关于php - Doctrine 加入一张 table 有两个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35150868/

相关文章:

mysql - 从表中选择值作为新列

mysql - 如果至少满足一次条件,则将值插入表中

php - 使用 ajax 和 Symfony2 上传文件

PHP 脚本运行两次

apache - Mac 上的 PHP 配置 - 不渲染

php - 从 xml 中检索 vimeo 视频信息

mysql - MySQL 更新行中的 LIMIT

java - 需要 Java 等价物才能对 PHP 代码进行 3DES 解密

php - 从 Symfony2 中的 Controller 访问集合表单字段

php - 如何添加适当的 Doctrine 查询构建器并加入表格