在Symfony 2.1中将FOS UserBundle从1.2升级到2.0后出错

时间:2012-08-07 00:08:47

标签: propel fosuserbundle symfony-2.1

我在Symfony 2.1中有一个项目,包括PropelBundle和FOS UserBundle。我将带有Composer的FOS UserBundle从1.2升级到最新版本(2.0),并按照指令删除app / config / config.yml文件中的“propel_user_class”定义,如Upgrade.md file所示。我的新配置如下:

# FOSUserBundle Configuration
fos_user:
    db_driver: propel
    firewall_name: main
    user_class: MyVendor\MyBundle\Model\Member
    registration:
        form:
            type: myvendor_user_registration

执行此操作并重建模型后,在提交用户登录表单时出现以下错误:“用户提供程序必须返回UserInterface对象。”

我认为FOS UserBundle存在一个问题,即无法识别我的用户类“Member”及其属性。在FOS / UserBundle的早期版本(1.2)中FOS\UserBundle\Model\UserInterface was implemented by a proxy object,因此我之前的配置(正在运行)包括以下内容:

user_class: MyVendor\MyBundle\FOSUserBundle\Propel\UserProxy
propel_user_class: MyVendor\MyBundle\Model\Member

我的UserProxy.php文件用于扩展FOS \ UserBundle \ Propel \ UserProxy并添加特定于我的项目的属性。新的UserBundle版本不再需要UserProxy.php吗? 我还需要做些什么来使新的UserBundle版本工作? 上面提到的Upgrade.md文件还讨论了不再将用户包装在CheckPassword类中的配置文件表单,并且不再由User类生成令牌。但是,由于这个原因,我不确定是否必须做任何改变?有人能给我一些指导吗?

我尝试将我的Member,Circle和MemberCircle类定义Schema移动到app / Resources / FOSUserBundle / config / propel / schema.xml,以覆盖FOS用户包中的模式,如文档中所示,同时告诉类中的类我自己的捆绑包来扩展FOS UserBundle中的那些但是在尝试使用“app / console propel:build”构建推进模型时出现以下错误:

  

[RuntimeException的]
  “MyProjectName /应用/资源/ FOSUserBundle /配置/推进/ schema.xml中”   资源被“MyBundle”中的资源隐藏   衍生包。创建一个   “MyProjectName /应用/资源/ MyBundle /配置/推进/ schema.xml中”   文件以覆盖包资源。

我在app / Resources / FOSUserBundle / config / propel / schema.xml文件中保留了命名空间“FOS \ UserBundle \ Propel”。如何使该架构覆盖FOS / UserBundle中的架构?我可以使用名为“Member”(对于User)和“Circle”(对于Group)的类吗?

0 个答案:

没有答案