Tree 参数1使用Symony3和stofDoctrineExtensionsBundle配置带有traits的Gedmo树repository时出错
我得到一个错误:Tree 参数1使用Symony3和stofDoctrineExtensionsBundle配置带有traits的Gedmo树repository时出错,tree,symfony,doctrine-extensions,stofdoctrineextensions,Tree,Symfony,Doctrine Extensions,Stofdoctrineextensions,我得到一个错误: Type error: Argument 1 passed to AppBundle\Repository\CategoryRepository::__construct() must be an instance of AppBundle\Repository\EntityManager, instance of Doctrine\ORM\EntityManager given, called in C:\_DEV_SF3_\fs3_tree\vendor\doctrin
Type error: Argument 1 passed to AppBundle\Repository\CategoryRepository::__construct()
must be an instance of AppBundle\Repository\EntityManager,
instance of Doctrine\ORM\EntityManager given,
called in C:\_DEV_SF3_\fs3_tree\vendor\doctrine\orm\lib\Doctrine\ORM\Repository\DefaultRepositoryFactory.php on line 68
我正在使用:
Symfony v3.0.6;
Doctrine v2.5.4
StofDoctrineExtensionsBundle
为了管理树形结构
为了使用traits配置树存储库,我执行中的操作。我得到了问题开头的错误。
请注意,如果我按照中所述通过扩展抽象存储库来配置树存储库,那么
如何向参数1提供“AppBundle\Repository\EntityManager实例”
我的树存储库
// AppBundle\Repository\CategoryRepository.php
<?php
namespace AppBundle\Repository;
use Gedmo\Tree\Traits\Repository\ORM\NestedTreeRepositoryTrait;
use Doctrine\ORM\EntityRepository;
class CategoryRepository extends EntityRepository
{
use NestedTreeRepositoryTrait;
public function __construct(EntityManager $em, ClassMetadata $class)
{
parent::__construct($em, $class);
$this->initializeTreeRepository($em, $class);
}
}
//AppBundle\Repository\CategoryRepository.php
您的分类报告
类中缺少条令的EntityManager
类的use
语句:
namespace AppBundle\Repository;
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
class CategoryRepository extends EntityRepository
{
use NestedTreeRepositoryTrait;
public function __construct(EntityManager $em, ClassMetadata $class)
{
// ...
}
}
添加了use语句,但仍然存在一个问题-现在我得到了这个错误:类型错误:传递给AppBundle\Repository\CategoryRepository的参数2::\uu construct()必须是AppBundle\Repository\ClassMetadata的实例,给定的是条令\ORM\Mapping\ClassMetadata的实例,调用C:\\ u DEV\u SF3\ufs3\u tree\vendor\doctrine\orm\lib\doctrine\orm\Repository\DefaultRepositoryFactory.php第68 500行内部服务器错误-FatalThrowableError
接受您的答案并为新错误创建单独的问题,该问题基本相同。您现在仍然缺少ClassMetadata
类的use
语句(我在上面更新了我的答案)。谢谢xabbux,没有更多的参数错误-它现在显示不同的错误。其中一个也被描述为使用条令\ORM\Mapping\ClassMetadata代码>与您的建议一样有效
namespace AppBundle\Repository;
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
class CategoryRepository extends EntityRepository
{
use NestedTreeRepositoryTrait;
public function __construct(EntityManager $em, ClassMetadata $class)
{
// ...
}
}