我试图使用doctrine从mysql数据库生成symfony 4中的实体。
首先,我在名为AppBundle的目录中创建了一个名为AppBundle.php的包
然后我使用以下方法生成模式的xml:
php bin/console doctrine:mapping:import --force AppBundle xml
这将在AppBundle文件夹中创建一个名为Resources的文件夹,然后在另一个名为config和doctrine的文件夹中创建,所有orm.xml文件都放在那里。
然后我尝试使用以下方法生成实体:
php bin/console doctrine:mapping:convert annotation ./src/Entity
这将在Entity文件夹中创建以下文件夹:
并且所有.php实体文件都放在第二个Entity文件夹中。
.php实体文件具有以下命名空间
namespace App\AppBundle\Entity;
在我的控制器中,我添加了名称空间
use App\AppBundle\Entity\User;
并使用学说来获取
$users = $this->getDoctrine()
->getRepository(User::class)
->findAll();
但是当我运行应用程序时,我收到此错误
现在,当我将第二个Entity文件夹移动到AppBundle文件夹中时。该应用程序工作。
有没有办法生成没有Symfony的实体生成App文件夹或AppBundle文件夹?
\App\Entity\User
)中。它现在是所有Symfony生成器的默认行为。2.1。配置像
orm:
mappings:
AppBundle:
is_bundle: true
type: xml
prefix: 'AppBundle\Entity'
2.2这样的学说。使用php bin/console doctrine:mapping:convert annotation ./src
您还应该正确配置composer autoload和Symfony配置。