Php 原则orm:生成代理投掷“;Can';t实例化自定义生成器“;
第2.5条原则。尝试使用手动生成代理时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=
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就能够找到该类。我本以为异常抛出是语法错误,但事实并非如此,可能是因为该类仅通过注释使用 然而,正如您所说的,您可以通过其他方式实例化您的类,因此您可能不会遇到与我相同的问题,但这可能会帮助其他人