这是我第一次独自使用Symfony2,我认为在配置FOS用户捆绑包时犯了一个错误。
看来我的用户实体没有正确扩展FOS \ UserBundle \ Entity \ User。

这是我的User类(与文档中提到的基本相同)

<?php
// src/Acme/UserBundle/Entity/User.php

namespace VillaPrivee\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Entity\User as BaseUser;


/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
        // your own logic
    }
}


由于我使用的是Netbeans,因此可以“按住Ctrl单击”并确保“ FOS \ UserBundle \ Entity \ User”存在。
到目前为止,我没有发现任何错误...

但是,当我尝试使用终端创建新用户时,出现以下错误:

Fatal error: Call to undefined method VillaPrivee\UserBundle\Entity\User::setUsername()
in /Applications/MAMP/htdocs/VillaPrivee/vendor/friendsofsymfony/
user-bundle/FOS/UserBundle/Util/UserManipulator.php on line 50


不确定我应该为您提供哪些其他详细信息,请让我知道在这种情况下是否还有其他文件很重要。

谢谢你的帮助!

编辑:

<?php

namespace VillaPrivee\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class VillaPriveeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}


config.yml:

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: VillaPrivee\UserBundle\Entity\User

最佳答案

我认为您扩展了错误的课程,请尝试:

use FOS\UserBundle\Model\User as BaseUser;


编辑:

是的,不赞成使用扩展名FOS\UserBundle\Entity\User
Documentation

关于symfony - FOS UserBundle->无法创建新用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24012448/

10-16 12:54