文档或我有问题.我做了文档所说的所有内容.
当我输入终端时:
$ php vendor/bin/doctrine orm:schema-tool:create
Run Code Online (Sandbox Code Playgroud)
输出是:
No Metadata Classes to process
Run Code Online (Sandbox Code Playgroud)
我读了许多帖子,并谷歌尝试了许多例子,但没有.
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started.html
小智 99
我想你从Doctrine2中获取了配置示例:入门:
$isDevMode = true;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);
Run Code Online (Sandbox Code Playgroud)
现在的诀窍是Setup :: createAnnotationMetadataConfiguration方法默认使用SimpleAnnotationReader.您可以通过将第五个参数更改为false来更改此行为:
$isDevMode = true;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode, null, null, false);
Run Code Online (Sandbox Code Playgroud)
这将迫使Doctrine使用非简单的AnnotationReader,它现在可以处理你的模型!
TL; DR:确保您创建的元数据类型与您使用的"创建元数据配置"方法相匹配.
我在处理Doctrine"入门"指南时遇到了同样的问题.仔细查看一下Doctrine代码后,我弄清楚出了什么问题.基本上,"获取EntityManager"部分的教程中的代码是:
$config = Setup::createAnnotationMetadataConfiguration(
array(__DIR__."/src"), $isDevMode);
Run Code Online (Sandbox Code Playgroud)
在本教程的"从产品开始"部分中,它向我们展示了如何设置元数据,并为每个可能的选项提供了示例.教程说:
使用XML,YAML或Docblock Annotations配置实体的元数据.本入门指南将显示所有映射驱动程序的映射.文本中的引用将用于XML映射.
由于这个陈述,我决定使用XML配置.不幸的是,createAnnotationMetadataConfiguration教程代码中的方法似乎没有使用我创建的XML文件.(事后看来,这个方法特别指的是注释元数据,而不是XML元数据,这一点似乎更为明显!)
在我改为之后createXMLMetadataConfiguration,它按预期工作.因此,看起来这个问题的一个可能来源是您使用的"创建元数据配置"方法可能与您创建的元数据类型不匹配.
小智 -3
尝试以下命令:
php vendor/bin/doctrine-module orm:schema-tool:create
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30296 次 |
| 最近记录: |