我正在使用Symfony2并希望通过运行为实体生成getter和setter:
$ php app/console doctrine:generate:entities TestBundle
控制台返回以下消息:
[RuntimeException]找不到“TestBundle”的基本路径(路径:“C:\ xampp \ htdocs \ ProjectX \ src \ Namespace \ TestBundle”,目的地:“C:/ xampp / htdocs / ProjectX / src / Namespace / TestBundle“) .
Bundle存在于这个位置: C:\xampp\htdocs\ProjectX\src\Namespace\TestBundle
怎么了?
4 回答
只是为了添加别的东西以防其他人达到这个目的 . 我有一个问题导致相同的错误,但这是由于我的实体生活在使用PSR-4的代码库中 . 在进行代码生成时,Doctrine不支持PSR-4 . 它与将类名称空间映射到文件系统路径以及PSR-4如何允许不直接映射到文件系统的类/命名空间路径有关 .
https://github.com/doctrine/DoctrineBundle/issues/282
我有这个问题是由我的bundle目录中的小写/大写的一些问题引起的 . 它不应该是Windows下的问题,但php函数str_replace是区分大小写的,生成错误
Doctrine无法根据命名空间重新创建类路径:这意味着您的命名空间或文件夹错误(检查案例)
您的Bundle php文件的名称从 TestBundle.php 到 NamespaceTestBundle.php 在路径中是错误的更改: C:/xampp/htdocs/ProjectX/src/Namespace/TestBundle/
John Pancoast's answer是对的 .
准确说明解决错误消息所需的内容;编辑您的包的
composer.json
文件,并更改包的文件夹结构 .在
composer.json
将psr-4
更改为psr-0
:至:
更改bundle的文件夹结构:
至:
以下命令不再抛出异常: