我想创建一个抽象类,称为Content
。有两种实现:TextContent
和VideoContent
abstract class Content {
/** @Id @Column(type="integer") @GeneratedValue **/
private $id;
/** @Column(type="string") **/
private $title;
/** getters and setters... **/
}
和实现:
class VideoContent extends Content {
/** @Column(type="string") **/
private $source;
/** @Column(type="string") **/
private $format;
/** getters and setters... **/
}
class TextContent extends Content {
/** @Column(type="string") **/
private $text_data;
/** getters and setters... **/
}
内容必须是抽象的,因为内容不能仅仅是内容。是视频还是文字。这在Doctrine2中怎么可能呢?这将如何在MySQL数据库中表示?
也许这对你有帮助
http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html single-table-inheritance
您必须创建一个包含discriminator列的表