我有一个这样的基表:
class BaseProduct
{
/**
* @ORM\ManyToOne(targetEntity="ProductBundle\Entity\Category", inversedBy="baseProducts")
* @ORM\JoinColumn(name="menu_category_id", referencedColumnName="id", nullable=true)
**/
protected $category;
// ...
以及从baseproduct继承的另一个实体
class ChildProduct extends BaseProduct
{
/**
* @ORM\ManyToOne(targetEntity="ProductBundle\Entity\Category", inversedBy="childProducts")
* @ORM\JoinColumn(name="menu_category_id", referencedColumnName="id", nullable=true)
**/
protected $category;
和类别实体:
class Category
{
/**
* @ORM\OneToMany(targetEntity="ProductBundle\Entity\BaseProduct", mappedBy="category")
* @ORM\OrderBy({"position"= "ASC"})
*/
private $baseProducts;
/**
* @ORM\OneToMany(targetEntity="ProductBundle\Entity\ChildProduct", mappedBy="category")
* @ORM\OrderBy({"position"= "ASC"})
*/
private $childProducts;
我的 ChildProduct
表有一列名为 id
并引用 BaseProduct
身份证。现在我想加入 ChildProduct
使用此查询:
$qb->select('mc', 'cp')
->from('ProductBundle:Category', 'mc')
->leftJoin('mc.childProducts', 'cp')
// .....
当我执行此查询时,会出现以下错误:
sqlwalker.php行922中的contexterrorexception:
注意:未定义索引:childproducts
当我有 childProducts
在类别中。
现在我有两个问题:
我是否能够查询子表中不存在的父字段。
我的问题是什么
1条答案
按热度按时间1wnzp6jl1#
检查继承Map:继承Map
在文档后面尝试这个(我没有测试代码)
现在教义知道你的类是其他类的基类。您所要做的就是扩展基类并添加注解
@ORM\Entity
```/**
**/
class ChildProduct extends BaseProduct
{
**/
protected $category;