我是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"
不幸的是,我选择了注释作为我的路由器,我该如何处理这个问题呢?
答案 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文档,一切顺利;)