我是 Symfony 和 Doctrine 的新手,我正在尝试实现一个简单的用户注册系统,它有两种类型的用户,一个客户和一个专家。
我有一个抽象类 Usuario,其中包含两个用户共享的公共数据以及从它扩展的另外两个。
问题是,当我运行命令 app/console dictionary:schema:update 时,它会生成表 Usuario,其中包含 Usuario 类的所有字段,但只有一个来自 Experto 类。
这是我的代码:
类乌苏里奥:
/**
* 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。任何想法我做错了什么?提前致谢。