【问题标题】:How can i get results from another Entity with conditions?如何从有条件的另一个实体获得结果?
【发布时间】:2015-03-12 10:44:46
【问题描述】:

我有两个实体。第一个是类别,第二个是产品。它们彼此处于ManytoOne 和OneToMany 关系。

$query = $repository->createQueryBuilder('category')->join('category.product', 'p');

if ($request->request->get("beginDate") != "") {
      $query->andWhere('p.date  >= :beginDate')
      ->setParameter('beginDate', $request->request->get("beginDate"));
}
if ($request->request->get("endDate") != "") {
      $query->andWhere("p.date <= :endDate")
      ->setParameter('endDate', $request->request->get("endDate"));
}

$categories = $query->getQuery()->getResult();

foreach($categories as $category){
    echo "Category: ".$category->getCategoryName()."<br />";
    foreach($category->getProduct() as $product){
        echo "Product: ".$product->getProductName()."<br />";
    }
}

我的问题是,当我得到产品时,它会将所有产品打印到类别中。我认为当您使用 OneToMany 关系时这很正常。但我想从条件为真的类别中获取这些产品。 也许我应该制作另一个查询构建器?但是我应该复制条件。还有其他解决办法吗?

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

    哦,已经解决了:

    $query = $this->getDoctrine()->getEntityManager()->createQueryBuilder()
                ->select('category, product')
                ->from('ShopBundle:Categories', 'category')
                ->join('category.product', 'product');
    

    【讨论】:

      猜你喜欢
      • 2012-03-29
      • 1970-01-01
      • 2023-03-21
      • 2014-04-16
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多