早上好,如下图所示,我链接了一些表。
使用 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/