wat*_*ver 2 extend symfony fosuserbundle
这是我第一次独自使用Symfony2,我认为在配置FOS用户包时我犯了一个错误.看起来我的用户实体没有正确扩展FOS\UserBundle\Entity\User.
这是我的User类(与doc中提到的基本相同)
<?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
}
}
Run Code Online (Sandbox Code Playgroud)
由于我使用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
Run Code Online (Sandbox Code Playgroud)
不知道我应该为你们提供哪些其他细节,请告诉我,在这种情况下是否有任何其他文件可能很重要.
谢谢你的帮助!
编辑:
<?php
namespace VillaPrivee\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class VillaPriveeUserBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}
Run Code Online (Sandbox Code Playgroud)
config.yml:
fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: VillaPrivee\UserBundle\Entity\User
Run Code Online (Sandbox Code Playgroud)
我认为你扩展错误的课程,尝试:
use FOS\UserBundle\Model\User as BaseUser;
Run Code Online (Sandbox Code Playgroud)
编辑:
FOS\UserBundle\Entity\User是的,不推荐使用扩展,Extend FOS\UserBundle\Model\User directly.
文档
| 归档时间: |
|
| 查看次数: |
3922 次 |
| 最近记录: |