当我尝试进行 YAML 映射时出现 Doctrine 2.0 ReflectionException
我的 cli-config.php 中有这段代码:
I have in my cli-config.php this code:
$driverImpl = new DoctrineORMMappingDriverYamlDriver(array(__DIR__.'/yaml'));
$driverImpl->setFileExtension('.yml');
$config->setMetadataDriverImpl($driverImpl);
./yaml 中有 yml 文件 (Client.yml,Worker.yml,Company.yml)
In ./yaml there are the yml files (Client.yml,Worker.yml,Company.yml)
当我运行文件以在数据库中生成带有此指令的架构时:
When i run the file to generate in db the schema with this instruccion:
php doctrine orm:schema-tool:create
抛出:
PHP Warning: class_parents(): Class Client does not exist and could not be loaded in applicationPathsystemapplicationlibrariesDoctrineORMMappingClassMetadataFactory.php on line 222
Warning: class_parents(): Class Cliente does not exist and could not be loaded in applicationPath\systemapplicationlibrariesDoctrineORMMappingClassMetadataFactory.php on line 222
PHP Warning: array_reverse() expects parameter 1 to be array, boolean given in applicationPath\systemapplicationlibrariesDoctrineORMMappingClassMetadataFactory.php on line 222
Warning: array_reverse() expects parameter 1 to be array, boolean given in applicationPath\systemapplicationlibrariesDoctrineORMMappingClassMetadataFactory.php on line 222
PHP Warning: Invalid argument supplied for foreach() in applicationPath\systemapplicationlibrariesDoctrineORMMappingClassMetadataFactory.php on line 222
Warning: Invalid argument supplied for foreach() in applicationPath\systemapplicationlibrariesDoctrineORMMappingClassMetadataFactory.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
It´s the same that Doctrine documentation http://www.doctrine-project.org/docs/orm/2.0/en/reference/yaml-mapping.html
我不知道为什么会发生这种情况,知道吗?谢谢
I don´t why it´s happening this, any idea? Thanks
推荐答案
IIRC,SchemaTool 将基于 ClassMetadata 实例生成 SQL,而不是直接从您的 YAML 映射中生成.ClassMetadata 实例也需要您的实际实体类
IIRC, the SchemaTool will generate the SQL based on ClassMetadata instances, not directly from your YAML mappings. ClassMetadata instances require your actual entity classes as well
确保您的命令行工具已加载/自动加载所有实体类.
Make sure your command line tool has all your entity classes loaded/autoloaded.
相关文章