单表继承的Symfony 2问题

时间:2013-09-24 20:18:13

标签: php doctrine-orm symfony-2.3

我是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。 我有什么想法,我做错了什么? 提前谢谢。

0 个答案:

没有答案