我遇到 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
我想知道是否可以创建这样的包,或者是否存在从现有数据库生成实体的其他命令。
答案 0 :(得分:1)
在SF4中,主要的应用程序组件名为“App&#39;默认情况下,不是捆绑。
您必须在src \目录下手动创建一个虚拟包,以便使用与bundle相关的旧doctrine:命令。
了解如何手动创建包Time::Piece
之后,您可以使用doctrine:命令导入/生成映射/实体,并在App主模块空间或这些包中使用它们。
SF4制造商工具还没有提供捆绑包创建......但我想SF4开发人员认为它不是一个必须要求的冲动,因为他们希望我们专注于将大多数代码放入捆绑较少App主模块。
答案 1 :(得分:0)
在symfony 4中,'AppBundle'不再存在。尝试使用'App'代替'AppBundle'