我在正确设置我的教义请求时遇到问题。
我有两个表(PROPRIETE和PHOTO),一个PROPRIETE可以有许多PHOTO
因此,我想做一个SELECT,它返回一个PROPRIETE数组,其中包含一个自己的PHOTO数组(不确定我是否清楚……)
这就是我的Popriete课程的样子
class Propriete
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="libelle", type="string", length=255)
*/
private $libelle;
/**
* @ORM\ManyToOne(targetEntity="VillaPrivee\UserBundle\Entity\User")
* @ORM\JoinColumn(onDelete="CASCADE")
*/
private $proprietaire;
/**
* @ORM\OneToMany(targetEntity="VillaPrivee\MainBundle\Entity\Photo", mappedBy="propriete")
*/
private $photo;
然后是照相课
class Photo
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="path", type="string", length=255)
*/
private $path;
/**
* @ORM\ManyToOne(targetEntity="VillaPrivee\MainBundle\Entity\Propriete")
* @ORM\JoinColumn(onDelete="CASCADE")
*/
private $propriete;
最后,是我的“教义”请求(该请求成功返回了Propriete列表,但没有返回他们的照片)
public function getProprietesByCriteria($ville, $rooms) {
$qb = $this->createQueryBuilder('p');
$qb->where('p.commune = :ville AND p.nbChambres >= :rooms')
->setParameter('ville', $ville)
->setParameter('rooms', $rooms);
return $qb->getQuery()->getResult();
}
我已经尝试过leftJoin,但是似乎我不知道如何使用这些东西...
谢谢大家帮助
最佳答案
我想您在代码中混用了不同的概念。使用Doctrine
时,您应该忘记尝试通过查询获取多个数组。
您只需要在任何getPhoto()
对象上调用propriete
方法。
因此,您可以使用类似于以下内容的代码:
$props = $this->getProprietesByCriteria($ville, $rooms);
foreach($props as $prop)
{
$prop->getPhoto(); // <--will return an array of the `PHOTO` related to this `PROPIETE`
}
关于mysql - Symfony2-主义-联接2张 table ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24141089/