我有一个名为“产品”的通用实体,它有一些简单的字段,例如名称、描述和价格。我想使用它作为基础实体,以便我可以基于此产品实体创建具有完全相同字段的其他实体。我可以轻松复制整个实体类和存储库文件并将它们重命名为 Product1、Product1Repository 等,但我觉得这会重复很多代码。我肯定需要处理实体的副本,向我的数据库设计添加另一个属性/列将无法满足我想要做的事情。扩展或继承此类的最佳方法是什么,以便 Product2、Product3、ProductN 类可以作为准系统类存在,只继承 Product1 的所有内容,并且还具有相应的 Doctrine 存储库?我需要做什么才能实现这个目标?这是我到目前为止的代码:
<?php
namespace App\Entity;
use App\Repository\ProductRepository;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ProductRepository::class)
*/
class Product
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\Column(type="string", length=255)
*/
private $description;
/**
* @ORM\Column(type="string", length=255)
*/
private $price;
//Getters and setters here...
谢谢你!
茅侃侃
江户川乱折腾