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

我有 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;


交互式爱情
浏览 135回答 1
1回答

慕尼黑8549860

querybuilder 实际上并不关心数据库字段,而是使用对象映射器,因此my_item_category_id您的Entity上没有字段,而是一个字段myItemCategory所以,你可以这样做:$querybuilder&nbsp; &nbsp; ->where('m.myItemCategory = :category')&nbsp; &nbsp; ->setParameter('category', $category) // <-- an actual MyItemCategory object或者您可以加入它并检查 ID:$querybuilder&nbsp; &nbsp; ->leftJoin('m.myItemCategory', 'mic')&nbsp; &nbsp; ->where('mic.id = :micid')&nbsp; &nbsp; ->setParameter('micid', $category_id)(我实际上不知道是否m.myItemCategory.id = :micid可行......你可以尝试;o))
打开App,查看更多内容
随时随地看视频慕课网APP