I have my UserBundle who extends the FOSUserBundle and works fine. But now, I want create multiple users entities with différents properties. But the problem is when I create my user enttity who extends my main User entity like this :
class User extends BaseUser
{
protected $id;
// The main user class who extends FOSUser entity
}
class UserB extends User
{
//
}
When I do this, I've got an error : `
Access level to MyApp\UserBundle\Entity\UserB::$id must be protected (as in class MyApp\UserBundle\Entity\User).
And when I create a protected id in my UserB entity I have this:
PHP Fatal error: Cannot redeclare MyApp\UserBundle\Entity\UserB::$id.
And to finish, I can't delete the id in my User entity less return a Doctrine error :
[Doctrine\ORM\Mapping\MappingException]
No identifier/primary key specified for Entity 'MTS\UserBundle\Entity\User'. Every Entity must have an identifier/primary key.
Someone can help me ?
EDIT : Problem solved. My code :
/**
* MTS\UserBundle\Entity\User
*
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"userfb" = "UserFB"})
*/
abstract class User extends BaseUser
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $type
*/
private $type;
}
/**
* @ORM\Table()
* @ORM\Entity()
*/
class UserB extends User
{
// My variables
}