这是我第一次独自使用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/