1

私は Symfony と Doctrine が初めてで、クライアントとエキスパートの 2 種類のユーザーを持つ単純なユーザー登録システムを実装しようとしています。

両方のユーザーが共有する共通データと、そこから拡張される他の 2 つの共通データを持つ抽象クラス Usuario があります。

問題は、コマンド app/console doctrine:schema:update を実行すると、Usuario クラスのすべてのフィールドを含むテーブル Usuario が生成されますが、Experto クラスのフィールドは 1 つだけです。

これが私のコードです:

クラス・ウスアリオ:

/**
 * 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 のすべてのプロパティと Experto クラスのプロパティ nombre_negocio のみを持つ Usuario というテーブルが作成されます。私が間違っていることはありますか?前もって感謝します。

4

0 に答える 0