我是Symfony和Doctrine的新手,我尝试使用两种类型的用户(客户端和专家)来实现一个简单的用户注册系统。
我有一个抽象类Usuario,其中包含两个用户共享的共同数据,以及从中扩展的另外两个。
问题在于,当我运行命令app / console doctrine:schema:update时,它会生成包含Usuario类的所有字段的Usuario表,但只有一个来自Experto类。
这是我的代码:
Class Usuario:
/**
* Usuario
*
* @ORM\Entity
* @ORM\Table(name="Usuario")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="tipo", type="string")
* @ORM\DiscriminatorMap( {"cliente" = "Cliente", "experto" = "Experto"} )
*/
abstract class Usuario
{
/**
* @var integer
*
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $nombre
*
* @ORM\Column(name="nombre", type="string", length=255)
*/
protected $nombre;
/**
* @var string $email
*
* @ORM\Column(name="email", type="string", length=255)
*/
protected $email;
/**
* @var string $password
*
* @ORM\Column(name="password", type="string", length=32)
*/
protected $password;
/**
* @var \DateTime $fecha_registro
*
* @ORM\Column(name="fecha_registro", type="datetime")
*/
Setters and Getters
班级专家:
/**
* Experto
*
* @ORM\Entity(repositoryClass="QuienLoRepara\UsuariosBundle\Entity\ExpertoRepository")
*/
class Experto extends Usuario
{
/**
* @var string $nombre_negocio
*
* @ORM\Column(name="nombre_negocio", type="string", length=255)
*/
protected $nombre_negocio;
/*
* @var text $descrip_negocio
*
* @ORM\Column(name="descrip_negocio", type="text")
*/
protected $descrip_negocio;
/*
* @var string $descripcion
*
* @ORM\Column(name="direccion", type="string", length=255)
*/
protected $direccion;
/*
* @var string $telefono
*
* @ORM\Column(name="telefono", type="string", length=255)
*/
protected $telefono;
/*
* @var string $actividad
*
* @ORM\Column(name="actividad", type="string", length=255)
*/
protected $actividad;
/*
* @var decimal $latitud
*
* @ORM\Column(name="latitud", type="decimal", precision=10, scale=8)
*/
protected $latitud;
/*
* var decimal $longitud
*
* @ORM\Column(name="longitud", type="decimal", precision=11, scale=8)
*/
protected $longitud;
/**
* @var Collection
* @ORM\OneToMany(targetEntity="Skill", mappedBy="experto")
* @ORM\JoinColumn(name="usuario_id", referencedColumnName="id")
*/
protected $skills;
结果是一个名为Usuario的表,其中包含usuario类的所有属性,并且只有Experto类的属性nombre_negocio。 我有什么想法,我做错了什么? 提前谢谢。