为了账号安全,请及时绑定邮箱和手机立即绑定

查询生成器无法与类别实体关联

查询生成器无法与类别实体关联

PHP
交互式爱情 2021-12-24 09:24:24
我有 2 个实体,MyItem 和 MyItemCategory。当我尝试使用查询构建器创建查询时,出现以下错误:Error: Class App\Entity\MyItem has no    field or association named myitem_category_id (500 Internal Server Error)这是我的查询构建器的 where 部分:$queryBuilder = $this->getDoctrine()        ->getRepository('App\Entity\MyItem')        ->createQueryBuilder('m');// adds where for category_id:$queryBuilder->where('m.myitem_category_id = :category_id')->setParameter('category_id',$category_id);这是第一个实体:/** * @ManyToOne(targetEntity="MyItemCategory") * @JoinColumn(name="myitem_category_id", referencedColumnName="id") */private $myItemCategory;...和我的类别实体:/** * @ORM\OneToMany(targetEntity="MyItem", mappedBy="myItemCategory") */private $myItemCategories;
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

querybuilder 实际上并不关心数据库字段,而是使用对象映射器,因此my_item_category_id您的Entity上没有字段,而是一个字段myItemCategory


所以,你可以这样做:


$querybuilder

    ->where('m.myItemCategory = :category')

    ->setParameter('category', $category) // <-- an actual MyItemCategory object

或者您可以加入它并检查 ID:


$querybuilder

    ->leftJoin('m.myItemCategory', 'mic')

    ->where('mic.id = :micid')

    ->setParameter('micid', $category_id)

(我实际上不知道是否m.myItemCategory.id = :micid可行......你可以尝试;o))


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信