Doctrine orm 集合与学说中的关联相匹配

Doctrine orm 集合与学说中的关联相匹配,doctrine-orm,Doctrine Orm,我想对关联对象使用CollectionMatching,但它不起作用。进行一些挖掘,看起来条令对这两个值进行了in_数组调用。针是我的关联的持久化集合,而草堆是我想要匹配的实体数组。因为针是一个持久的集合,所以匹配失败 这可能是一个bug还是不支持关联?如果它们不受支持,是否有解决方法 例如: $query = $em->createQuery("SELECT c FROM Entity\BidCategory c WHERE c.code IN(:categories)"); $quer

我想对关联对象使用CollectionMatching,但它不起作用。进行一些挖掘,看起来条令对这两个值进行了in_数组调用。针是我的关联的持久化集合,而草堆是我想要匹配的实体数组。因为针是一个持久的集合,所以匹配失败

这可能是一个bug还是不支持关联?如果它们不受支持,是否有解决方法

例如:

$query = $em->createQuery("SELECT c FROM Entity\BidCategory c WHERE c.code IN(:categories)");
$query->setParameter('categories', array('CATEGORY_1', 'CATEGORY_2'));
$my_categories = $query->getResult();

$criteria = array(
"min_pub_date" => "01-07-2012",
"max_pub_date" => "01-08-2012"
);

$query = $em->createQuery("SELECT b From Entity\Bid b JOIN b.categories c WHERE b.pub_date > :min_pub_date AND b.pub_date < :max_pub_date");
$query->setParameter("min_pub_date", new DateTime($criteria['min_pub_date']));
$query->setParameter("max_pub_date", new DateTime($criteria['max_pub_date']));
$query->setMaxResults(1);
$bids = $query->getResult();

$criteria = Criteria::create()
->where(Criteria::expr()->in("categories", $my_categories));

$collection = new Doctrine\Common\Collections\ArrayCollection();
foreach($bids as $bid)
{
    $collection->add($bid);
}
$matched_bids = $collection->matching($criteria);

“条件”功能不支持关联。Criteria::expr->in方法用于正则数组