我的cli-config.php中有这段代码:
$driverImpl = new \Doctrine\ORM\Mapping\Driver\YamlDriver(array(__DIR__.'/yaml'));
$driverImpl->setFileExtension('.yml');
$config->setMetadataDriverImpl($driverImpl);
在./yaml中有yml文件(Client.yml,Worker.yml,Company.yml)
当我运行该文件以使用此instruccion在db中生成模式时:
php doctrine orm:schema-tool:create
抛出:
PHP Warning: class_parents(): Class Client does not exist and could not be loaded in applicationPath\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222
Warning: class_parents(): Class Cliente does not exist and could not be loaded in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222
PHP Warning: array_reverse() expects parameter 1 to be array, boolean given in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222
Warning: array_reverse() expects parameter 1 to be array, boolean given in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222
PHP Warning: Invalid argument supplied for foreach() in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222
Warning: Invalid argument supplied for foreach() in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222
[ReflectionException]
Class Client does not exist
与Doctrine文档http://www.doctrine-project.org/docs/orm/2.0/en/reference/yaml-mapping.html
相同我不知道为什么会发生这种情况,任何想法? 感谢
答案 0 :(得分:0)
确保您的命令行工具已加载/自动加载所有实体类。
答案 1 :(得分:-1)
我遇到了同样的麻烦。诀窍是从yaml文件生成实体,并将--generate-annotations选项设置为1.我复制了我在下面使用的命令:
$ doctrine orm:generate-entities --generate-annotations=1 Entities/
这样做是因为它生成实体以及所有映射信息。现在,如果您更改引导程序中的元数据驱动程序配置以使用实体而不是yaml文件,则架构创建应该起作用。
编辑2017-05-31 一段时间后重温这个。这似乎是由于自动加载问题,Doctrine无法找到您的“类客户端”的情况。您可以通过在cli-config.php中包含引导文件/自动加载器脚本的路径来解决此问题。