Php 新的Symfony2用户类出现致命错误

Php 新的Symfony2用户类出现致命错误,php,entity-framework,symfony,doctrine-orm,Php,Entity Framework,Symfony,Doctrine Orm,我正在尝试从security.yml中手动指定的用户移动到数据库用户。我已经阅读并实现了他们的示例,然后使用朋友的用户类对其进行了扩展。当我尝试运行php应用程序/控制台原则:generate:entities时,我得到以下错误:classmyfrequeler\PortalBundle\Entity\User包含7个抽象方法,因此必须声明为抽象方法或实现剩余的方法,然后是一个离开页面的方法列表 我的代码如下: <?php namespace MyFreelancer\PortalBund

我正在尝试从security.yml中手动指定的用户移动到数据库用户。我已经阅读并实现了他们的示例,然后使用朋友的用户类对其进行了扩展。当我尝试运行
php应用程序/控制台原则:generate:entities
时,我得到以下错误:
classmyfrequeler\PortalBundle\Entity\User包含7个抽象方法,因此必须声明为抽象方法或实现剩余的方法
,然后是一个离开页面的方法列表

我的代码如下:

<?php
namespace MyFreelancer\PortalBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation as Ser;
use Gedmo\Mapping\Annotation as Gedmo;

use Symfony\Component\Security\Core\User\Role;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * User
 *
 * @ORM\Entity
 * @ORM\Table(name="users")
 * @Ser\ExclusionPolicy("all")
 */
class User implements UserInterface, \Serializable
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @Ser\Expose
     */
    private $id;

/**
     * @var string
     *
     * @ORM\Column(name="role_id", type="integer")
     * @Assert\Range(min=1)
     */
    private $roleId;

    /**
     * @var string
     *
     * @ORM\Column(name="username", type="string", length=100)
     * @Assert\Length(min=3, max=100)
     * @Ser\Expose()
     */
    private $username;

    /**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=2048)
     * @Assert\Length(min=8, max=2048)
     */
    private $password;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=100)
     * @Assert\Length(min=3, max=100)
     * @Ser\Expose()
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="surname", type="string", length=100)
     * @Assert\Length(min=3, max=100)
     * @Ser\Expose()
     */
    private $surname;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=200)
     * @Assert\Email(checkMX=true)
     * @Ser\Expose()
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="cell", type="string", length=20, nullable=true)
     * @Assert\Length(min=10, max=20)
     * @Ser\Expose()
     */
    private $cell;

}
?>

这实际上是第二个问题,如果在这里无法回答,那么我将打开一个新主题。感谢所有阅读过此问题的人。

关于的实体提供程序的cookbook文章介绍了如何正确设置。

实现
用户界面所需的方法你好,Benny,谢谢你的评论,但我到底应该怎么做?我不知道这些方法应该怎么做。如果我只实现空白方法,这不会破坏系统并破坏目的吗?您肯定需要实现
serialize()
unserialize()
方法,symfony教程将介绍如何实现这一点。此外,您应该实现
getRoles()
getPassword()
getSalt()
getUsername()
。在这里,symfony教程可能会有很大帮助
eraseCredentials()
可以留空以便轻松开始。由于我找不到您提到的教程,您能否为我提供这些教程的链接?
role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]