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

时间:2014-02-11 14:37:15

标签: symfony annotations yaml

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

我有2个捆绑包,都使用注释作为路由器,并且它们共享一个名为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 doctrine: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"

不幸的是,我选择了注释作为我的路由器,我该如何处理这个问题呢?

1 个答案:

答案 0 :(得分:0)

关于您的错误

  

当我使用命令php app / console doctrine: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文档,一切顺利;)