Php 原则orm:生成代理投掷“;Can';t实例化自定义生成器“;

Php 原则orm:生成代理投掷“;Can';t实例化自定义生成器“;,php,symfony,orm,doctrine-orm,Php,Symfony,Orm,Doctrine Orm,第2.5条原则。尝试使用手动生成代理时 doctrine orm:generate-proxies 将引发异常: [条令\ORM\or例外] 无法实例化自定义生成器:MyBundle\MyCustomGenerator 我定义了一个可正常工作的自定义生成器: /** * @ORM\Column(type="string") * @ORM\Id * @ORM\GeneratedValue(strategy="CUSTOM") * @ORM\CustomIdGenerator(class=

第2.5条原则。尝试使用手动生成代理时

doctrine orm:generate-proxies
将引发异常:

[条令\ORM\or例外]
无法实例化自定义生成器:MyBundle\MyCustomGenerator

我定义了一个可正常工作的自定义生成器:

/**
 * @ORM\Column(type="string")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="CUSTOM")
 * @ORM\CustomIdGenerator(class="MyBundle\MyCustomGenerator")
 */
protected $id;
另外,手动实例化生成器,如

$a = new MyBundle\MyCustomGenerator();
工作。但出于某种原因,条令控制台抛出了上述异常

我已尝试调试和检查正在进行的操作。
异常定义在of
ClassMetadataFactory
中。我检查了
$definition['class']
是否存储了自定义生成器的名称:
MyBundle\MyCustomGenerator
。但是,条令仍然找不到阶级。
我认为应该将定义添加到
cli config.php
as,使用
use MyBundle
use MyBundle\MyCustomGenerator
,但它不起作用-仍然引发了相同的异常


我该如何让Doctrine控制台知道我的自定义ID生成器呢?

不确定它是否会有帮助或者仍然需要帮助,但是试试这个

@ORM\CustomIdGenerator(class=“\MyBundle\MyCustomGenerator”)


ie将起始斜杠添加到类定义中

在我的例子中,有几个语法错误阻止了类被正确自动加载

一旦我在自定义生成器类中解决了这些问题,Doctrine就能够找到该类。我本以为异常抛出是语法错误,但事实并非如此,可能是因为该类仅通过注释使用

然而,正如您所说的,您可以通过其他方式实例化您的类,因此您可能不会遇到与我相同的问题,但这可能会帮助其他人