我在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)的类吗?