2
我正在創建symfony的web應用程序,並有問題與適當的dql查詢收件箱。 這是實體導致問題的代碼:Symfony一對多的查詢
class Message
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @OneToOne(targetEntity="User")
* @JoinColumn(name="fromUser", referencedColumnName="id")
*/
protected $fromUser;
/**
* @ORM\Column(type="text")
*/
protected $fromEmail;
/**
* @return mixed
*/
/**
* @OneToOne(targetEntity="User")
* @JoinColumn(name="toUser", referencedColumnName="id")
*/
protected $toUser;
/**
* @ORM\Column(type="text",length=255)
*/
protected $subject;
/**
* @ORM\Column(type="datetimetz")
*/
protected $date;
/**
* @ORM\Column(type="text")
*/
protected $toEmail;
/**
* @ORM\Column(type="text")
*/
protected $content;
/**
* @ORM\Column(type="boolean")
*/
protected $sent;
/**
* @ORM\Column(type="boolean")
*/
protected $spammed;
/**
* @ManyToMany(targetEntity="View")
* @JoinTable(name="messages_views",
* joinColumns={@JoinColumn(name="message_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="view_id", referencedColumnName="id", unique=true)}
* )
*/
protected $view;
class View extends CollectionType
{
public function __construct($user)
{
$this->user = $user;
$this->trashed = false;
$this->deleted = false;
$this->seen = false;
}
/**
* @ORM\Column(type="boolean")
*/
protected $trashed;
/**
* @ORM\Column(type="boolean")
*/
protected $deleted;
/**
* @ORM\Column(type="boolean")
*/
protected $seen;
/**
* @ManyToOne(targetEntity="User")
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
}
$視圖類的ArrayCollection()和一對多的關係。 我想選擇字段「其中$ toUser =:我」,其中包含$ view其中$ view-> user =:me和$ view-> trashed = false「(如果有兩個$視圖的話/預期)選擇首次發現)提前 感謝您的時間
編輯: 目前,我有這樣的事情
$get = $this->getEntityManager()
->createQuery('
SELECT m
FROM MonoAdminBundle:Message m
WHERE m.userTo = :me AND m.sent = true
AND
ORDER BY m.date DESC
')
->setParameter('me', $me->getId())->getArrayResult();
$ret = new \Doctrine\Common\Collections\ArrayCollection();
foreach ($get as $message) {
if ($message->getSpammed() === false) {
foreach ($message->getView() as $view) {
if ($view->getUser() == $me) {
if ($view->getTrashed() === false) {
$ret->add($message);
}
}
}
}
}
但正如我想使用分頁程序是不是好主意。
感謝您的幫助:) – npower