我有 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))
- 1 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消