我在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
}