AppBundle symfony 4

时间:2018-03-26 19:01:15

标签: import doctrine entities symfony4

我遇到 Symfony 4 的问题,我希望使用以下命令从现有数据库生成实体:

php bin/console doctrine:mapping:import --force AppBundle xml

但是出现错误:

Bundle "AppBundle" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your App\Kernel.php file?

我尝试导入registerBundles()中的kernel.php文件:

new AppBundle/AppBundle();

但未定义的类,当我在src / AppBundle / AppBundle.php中创建它时:

<?php namespace AppBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class AppBundle extends Bundle { }

没有任何改变,当我重试命令时:

PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "AppBundle" from namespace "App". Did you forget a "use" statement for another namespace? in /var/www/html/symfony/Mission3/src/Kernel.php:30

我想知道是否可以创建这样的包,或者是否存在从现有数据库生成实体的其他命令。

2 个答案:

答案 0 :(得分:1)

在SF4中,主要的应用程序组件名为“App&#39;默认情况下,不是捆绑。 您必须在src \目录下手动创建一个虚拟包,以便使用与bundle相关的旧doctrine:命令。 了解如何手动创建包Time::Piece

之后,您可以使用doctrine:命令导入/生成映射/实体,并在App主模块空间或这些包中使用它们。

SF4制造商工具还没有提供捆绑包创建......但我想SF4开发人员认为它不是一个必须要求的冲动,因为他们希望我们专注于将大多数代码放入捆绑较少App主模块。

答案 1 :(得分:0)

在symfony 4中,'AppBundle'不再存在。尝试使用'App'代替'AppBundle'