Symfony 2 FOSUserBundle Propel Propel UserManager实现不支持此用户实例

时间:2014-07-21 15:20:55

标签: php symfony fosuserbundle propel

我在Symfony 2.4安装上实现了FOSUserBundle(带推进功能)。

我收到此错误:

This user instance is not supported by the Propel UserManager implementation

这是我的 User.php

namespace g9\BoBundle\Model;

use FOS\UserBundle\Model\User as MyUser;

class User extends MyUser{
    # .. no code here yet
}

我做错了什么? 提前致谢

编辑:

如果我编辑 FOS / UserBundle / Propel / UserManager.php 并评论以下几行:

public function updateUser(UserInterface $user)
{
    #if (!$user instanceof \Persistent) {
    #    throw new \InvalidArgumentException('This user instance is not supported by the Propel UserManager implementation');
    #}

    $this->updateCanonicalFields($user);
    $this->updatePassword($user);
    $user->save();
}

并将此功能添加到我的模型中:

public function save() {
    # No code at all
}

我停止了错误。当然,由于save()实现为空,因此我的用户表中没有任何内容。 我认为这不是解决方案,如果我必须实现类似save()的东西我不应该让Bundle来管理用户,我应该自己实现一切。

拜托,我需要一些清晰度......我对symfony一无所知。

在我的自定义save()函数中,我做了 var_dump($ this);退出; 在评论中消失:

object(g9\BoBundle\Model\User)#546 (19) {
  ["id":protected]=>
  NULL
  ["username":protected]=>
  string(9) "asdasdasd"
  ["usernameCanonical":protected]=>
  string(9) "asdasdasd"
  ["email":protected]=>
  string(17) "asdasd@asdasd.com"
  ["emailCanonical":protected]=>
  string(17) "asdasd@asdasd.com"
  ["enabled":protected]=>
  bool(true)
  ["salt":protected]=>
  string(31) "1vnor8tdykcgs004080c8gskgcso8oc"
  ["password":protected]=>
  string(88) "ItcyRBZDjaua9EIZ050/mfp35vhag0lrumUSTcahaIWW6AQyhxG9JgA4kMVOX4WCRsyDa3rbOqmZmCaDbxi3KA=="
  ["plainPassword":protected]=>
  NULL
  ["lastLogin":protected]=>
  NULL
  ["confirmationToken":protected]=>
  NULL
  ["passwordRequestedAt":protected]=>
  NULL
  ["groups":protected]=>
  NULL
  ["locked":protected]=>
  bool(false)
  ["expired":protected]=>
  bool(false)
  ["expiresAt":protected]=>
  NULL
  ["roles":protected]=>
  array(0) {
  }
  ["credentialsExpired":protected]=>
  bool(false)
  ["credentialsExpireAt":protected]=>
  NULL
}

0 个答案:

没有答案