【问题标题】:How to use fosuserbundle in symfony2 using annotations as router?如何使用注释作为路由器在 symfony2 中使用 fosuserbundle?
【发布时间】:2014-02-11 14:37:15
【问题描述】:

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

我有 2 个捆绑包,都使用注释作为路由器,它们共享一个名为 mydb 的 orm 数据库。当我打算使用 FOSUserBundle 时,我将这些代码放在 app/coconfig/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 dictionary: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"

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

【问题讨论】:

    标签: symfony annotations yaml


    【解决方案1】:

    关于您的错误

    当我使用命令 php app/console dictionary:schema:update --force 时, 该命令告诉我“名称为 'mydb.apply' 的表已经存在”, apply 是数据库的一个表。

    命令

    php app/console doctrine:schema:update --force
    

    用于更新数据库中的表。

    如果 symfony 告诉你 'mydb.apply' 已经存在

    你可能有两个实体:

    @ORM\Entity()
    @ORM\Table(name="apply")
    

    关于您的路由

    您的应用程序只需要一个数据库

    您的应用程序中可以有(必须有)多个捆绑包。

    在每个bundle中,可以使用xml或者注解

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

    但 FOSUserBundle 使用 xml 配置(因为这是最佳实践)

    仔细阅读 FOSUserBundle 文档,一切都会好起来的;)

    【讨论】:

    • 感谢您的回答。但是你能更具体一点吗?我确实有两个名称为“apply”的实体,但它们位于不同的包中。我的关键问题是:如何将 fosuserbundle 的这些代码放在其中一个包中?
    • 一个bundle只是你应用程序的一部分,你必须使用不同的表名。因为所有实体都在同一个数据库中
    • 证明你只有一个 parameter.yml(数据库信息)
    猜你喜欢
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    相关资源
    最近更新 更多