拜托,你能帮助我吗?
我正在寻找最好的方法,如何向实体(Product)添加一些带有值的参数。
例如: 产品T恤有参数:尺寸:XXL,颜色:红色,材质:棉。如何使表格获得最佳结果 - 轻松地将参数添加到产品中,并通过参数轻松过滤产品。
感谢您的意见。
答案 0 :(得分:1)
您有两种选择:
OneToMany与其他实体的关系(推荐)
您可以创建一个名为ProductProperty的新实体,并声明从Product到ProductProperty的OneToMany关系,如下所示:
产品实体
/**
* @ORM\Entity
*/
class Product
{
/**
* @ORM\OneToMany(targetEntity="ProductProperty", mappedBy="product", cascade={"remove"})
*/
public $properties;
}
ProductProperty实体
/**
* @ORM\Entity
*/
class ProductProperty
{
/**
* @ORM\ManyToOne(targetEntity="Product", inversedBy="properties")
* @ORM\JoinColumn(name="product_id", referencedColumnName="id")
*/
public $product;
}
在实体产品
中创建数组属性Doctrine 2支持数组(它将数组序列化为TEXT列)。创建一个行为类似于数组的属性:
/**
* @ORM\Entity
*/
class Product
{
/** @ORM\Column(type="array") */
public $properties;
public function __construct()
{
$this->properties = []; //new PHP array notation, if using older PHP use array()
}
}