未捕获的PHP异常Doctrine \ ORM \ ORMException:"未知的实体名称空间别名' AppBundle'。"

时间:2016-02-15 19:03:57

标签: php entity-framework doctrine-orm doctrine symfony

我刚用作曲家开始了我的第一个项目,并希望为它设置数据库和类。但是我被卡住了。我在prod.log

中收到了上述错误

我在这里遵循了这个教程:http://symfony.com/doc/current/book/doctrine.html

我创建了数据库

php bin/console doctrine:database:create

然后想要创建一个实体

php bin/console doctrine:generate:entity

当我被问到The Entity shortcut name时,我输入了AppBundle:Product

然后创建数据库字段等。

我收到此消息

  

实体生成

     

生成实体类src / AppBundle / Entity / Product.php:OK!
  生成存储库类src / AppBundle / Repository / ProductRepository.php:好的!

     

一切都好!现在开始工作:)。

所以听起来一切正常,对吗?

现在我ProductController使用了这个

$products = $this->getDoctrine()
    ->getRepository('AppBundle:Product')
    ->findAll();

我收到了错误

[2016-02-15 18:56:14] request.CRITICAL: Uncaught PHP Exception Doctrine\ORM\ORMException: "Unknown Entity namespace alias 'AppBundle'." at /home/vagrant/work/homestead/test/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php line 271 {"exception":"[object] (Doctrine\\ORM\\ORMException(code: 0): Unknown Entity namespace alias 'AppBundle'. at /home/vagrant/work/homestead/test/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php:271)"} []

我也试过

->getRepository('AppBundle\Entity\Product')

但在这里我收到了消息

[2016-02-15 19:01:39] request.CRITICAL: Uncaught PHP Exception Doctrine\Common\Persistence\Mapping\MappingException: "The class 'AppBundle\Entity\Product' was not found in the chain configured namespaces " at /home/vagrant/work/homestead/test/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php line 37 {"exception":"[object] (Doctrine\\Common\\Persistence\\Mapping\\MappingException(code: 0): The class 'AppBundle\\Entity\\Product' was not found in the chain configured namespaces  at /home/vagrant/work/homestead/test/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php:37)"} []

我如何真正实现这一点/我刚开始使用该项目。然而,Doctrine创建了这些类。我喜欢这个

/src
/src/AppBundle/
/src/AppBundle/Entity
    Product.php
/src/AppBundle/Repository
    ProductRepository.php

此外,在Product.php中,这是注释的注释(如果它有帮助)

 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")

此外,在尝试使用此命令php bin/console doctrine:generate:entities AppBundle重新创建实体时,我没有收到任何错误消息。

我正在

Generating entities for bundle "AppBundle"
 > backing up Product.php to Product.php~
 > generating AppBundle\Entity\Product

1 个答案:

答案 0 :(得分:4)

解决方案是删除缓存文件,因此如果您在生产模式下工作则需要它。在调试模式下,这是自动完成的。可以肯定的是,如果你在3.x,在2.x下的应用程序中,只需将prod文件夹下拉到var下即可。

清除2.x缓存的命令是:

my @words = split /\|/, "red|white|blue";

# now $words[0] is 'red', $words[1] is 'white', $words[2] is 'blue'