Symfony FOSUserBundle无法实例化抽象类FOS \ UserBundle \ Model \ User

时间:2014-07-21 13:14:38

标签: php symfony fosuserbundle propel

我有一个新的Symfony 2.4 + FOSUserBundle的isqulation。 我刚刚配置了FOSUserBundle,本指南:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md

现在我尝试使用CLI创建一个新用户

fos:user:create --super-admin user user@domain.com password1

我收到此错误

PHP Fatal error:  Cannot instantiate abstract class FOS\UserBundle\Model\User in /var/www/symfony2/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/UserManager.php on line 55

config.ylm

...
fos_user:
    db_driver: propel
    firewall_name: main
    user_class: FOS\UserBundle\Model\User
...

当访问/注册我得到相同的错误,但/ login似乎工作正常(虽然我无法登录,因为我没有用户)

有什么想法吗? 提前致谢

编辑:

新用户类:

namespace g9\BoBundle\Model;

use FOS\UserBundle\Model\User as MyUser;
use FOS\UserBundle\Model\UserInterface;
use FOS\UserBundle\Model\UserManager;

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

当我使用CLI创建用户时,我得到:

  [InvalidArgumentException]
  This user instance is not supported by the Propel UserManager implementation

我应该提交另一个问题吗? (最初的问题得到了答案

1 个答案:

答案 0 :(得分:3)

您无法使用提供的用户模型,您必须extend it and create your own

执行此操作时,请将user_class配置参数设置为您的用户模型的名称空间(扩展FOSUser的用户模型)。

目前,您的user_class已设置为抽象User,因此会中断。