在存储库中我有这段代码:
<?php
namespace AppBundle\Repository;
use Doctrine\ODM\MongoDB\DocumentRepository;
class ItemRepository extends DocumentRepository
{
public function findAllQueryBuilder($filter = '')
{
$qb = $this->createQueryBuilder('item');
if ($filter) {
$cat = $this->getDocumentManager()
->getRepository('AppBundle:Category')
->findAllQueryBuilder($filter)->getQuery()->execute();
$qb->field('category')->includesReferenceTo($cat);
}
return $qb;
}
}
但它抛出了这个错误:
The class 'Doctrine\ODM\MongoDB\Cursor' was not found in the chain configured namespaces AppBundle\Document
有什么问题?
我查看了$cat
,它会返回正确的category
文档。
答案 0 :(得分:0)
$cat
变量是Doctrine\ODM\MongoDB\Cursor
的实例。但它应该是文件的实例。
所以代码应该改为:
<?php
namespace AppBundle\Repository;
use Doctrine\ODM\MongoDB\DocumentRepository;
class ItemRepository extends DocumentRepository
{
public function findAllQueryBuilder($filter = '')
{
$qb = $this->createQueryBuilder('item');
if ($filter) {
$cats = $this->getDocumentManager()
->getRepository('AppBundle:Category')
->findAllQueryBuilder($filter)->getQuery()->execute();
foreach ($cats as $cat) {
$qb->field('category')->includesReferenceTo($cat);
}
}
return $qb;
}
}