如何在symfony2中使用fosuserbundle,使用注释作为路由器?

如何在symfony2中使用fosuserbundle,使用注释作为路由器?,symfony,annotations,yaml,Symfony,Annotations,Yaml,我是Symfony2的初学者,刚刚遇到一些问题 我有两个包,都使用注释作为路由器,它们共享一个名为mydb的orm数据库。当我打算使用FOSUserBundle时,我将这些代码放在app/coonfig/route.yml中,就像文档中所说的: # app/config/routing.yml fos_user_security: resource: "@FOSUserBundle/Resources/config/routing/security.xml" fos_user_profile

我是Symfony2的初学者,刚刚遇到一些问题

我有两个包,都使用注释作为路由器,它们共享一个名为mydb的orm数据库。当我打算使用FOSUserBundle时,我将这些代码放在app/coonfig/route.yml中,就像文档中所说的:

# app/config/routing.yml

fos_user_security: resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile: resource: "@FOSUserBundle/Resources/config/routing/profile.xml" prefix: /profile

fos_user_register: resource: "@FOSUserBundle/Resources/config/routing/registration.xml" prefix: /register

fos_user_resetting: resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" prefix: /resetting

fos_user_change_password: resource: "@FOSUserBundle/Resources/config/routing/change_password.xml" prefix: /profile
当我使用命令php-app/console-doctor:schema:update-force时,该命令告诉我名为“mydb.apply”的表已经存在,apply是数据库的一个表

那么,为什么会发生这种情况呢?我在网上搜索,发现这可能是因为两个包共享同一个数据库。更好的解决方案是将这些代码放在bundle/Resources/config/route.yml而不是app/config/route.yml中,只需将这些代码添加到app/config/route.yml中:

FirstBundle:
    resource: "@FirstBundle/Resources/config/route.yml"
不幸的是,我选择了注释作为路由器,我应该如何处理这个问题?

关于您的错误 当我使用命令php-app/console-doctor:schema:update-force时, 命令告诉我名为“mydb.apply”的表已经存在, apply是数据库的一个表

命令

php app/console doctrine:schema:update --force
用于更新数据库中的表

如果symfony告诉您“mydb.apply”已经存在

您可能有两个实体:

@ORM\Entity()
@ORM\Table(name="apply")
关于你的路线 您的应用程序只需要一个数据库

您的应用程序中可以有多个捆绑包

在每个捆绑包中,您可以使用xml或注释

您可以为您的个人包使用注释

但是FOSUserBundle使用xml配置,因为这是一种最佳实践


仔细遵循FOSUserBundle文档,一切都会好起来

谢谢你的回答。但你能说得更具体一点吗?我确实有两个name=apply的实体,但它们在不同的包中。我的关键问题是:如何使fosuserbundle的代码只在其中一个bundle中?bundle只是应用程序的一部分,必须使用不同的表名。因为所有实体都在同一数据库中,所以证明您只有一个参数。yml database infos