1

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

4

0 回答 0