仅在生产中清空左连接

时间:2016-09-06 12:10:31

标签: php mysql symfony orm doctrine-orm

我在symfony2上运行了一个网站。

我有这个dql查询:

SELECT b, d, al, a 
FROM Bundle:Book b  
LEFT JOIN b.document d
LEFT JOIN b.authorLinks al
LEFT JOIN al.author a    
WHERE d.type = 'summary'
ORDER BY b.name ASC

在本地我没有任何问题,但在制作中我有这个问题:

... LEFT JOIN LEFT JOIN ...

所以第一个LEFT JOIN(b.document d)不能在生产中工作,但在本地工作......(其他LEFT JOIN(authorLinks& author)同时工作)

我的Book实体有:

/**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\OneToMany(targetEntity="Document", mappedBy="book")
 * @ORM\OrderBy({"name" = "ASC"})
 */
protected $document;

我的Document实体有:

/**
 * @var Book
 *
 * @ORM\ManyToOne(targetEntity="Book", inversedBy="document")
 * @ORM\JoinColumn(name="book_id", referencedColumnName="id", nullable=true)
 * @Assert\NotBlank
 */
protected $book;

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

解决了!

我添加了#34; d.book_id = b.id"在" LEFT JOIN b.document d"

之后

并添加了

/**
 * @var book_id
 * @ORM\Column(name="book_id", type="integer")
 * @Assert\NotBlank
 */
protected $book_id;

在文档实体

中 感谢所有人!