我的 PageRepository 中有这个 DQL 请求:
SELECT p, b
FROM CmsCmsBundle:Page p
JOIN b.page p
WHERE p.position = :position
并出现此错误消息:
[语义错误] 第 0 行,第 51 列靠近“.page p WHERE”:错误:标识变量 b 用于连接路径表达式,但之前未定义。
我有 2 个具有双向关系的实体(页面和块),如下所示:
/**
* (Block.php (without "s" )
* @ORM\ManyToOne(targetEntity="Cms\CmsBundle\Entity\Page", inversedBy="blocks")
* @ORM\JoinColumn(nullable=false)
* @Assert\Valid()
*/
private $page;
/**
* (page.php)
* @ORM\OneToMany(targetEntity="Cms\CmsBundle\Entity\Block", mappedBy="page", cascade={"persist"})
* @ORM\JoinColumn(nullable=false)
* @Assert\Valid()
*/
protected $blocks;
一些想法?
问题解决了,我刚刚反转了“b.page p”而不是“p.blocks b”