如何在symfony2中使用fosuserbundle,使用注释作为路由器?
我是Symfony2的初学者,刚刚遇到一些问题 我有两个包,都使用注释作为路由器,它们共享一个名为mydb的orm数据库。当我打算使用FOSUserBundle时,我将这些代码放在app/coonfig/route.yml中,就像文档中所说的:如何在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
# 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