Doctrine orm 将实体与公共表中的slug关联

Doctrine orm 将实体与公共表中的slug关联,doctrine-orm,symfony4,Doctrine Orm,Symfony4,我试图将不同实体的段塞存储在一个表中。 假设我们有两个实体和表,“product”和“blog”,还有第三个表——“slug”,用于存储它们的slug。表“slug”有以下列:id,实体(字符串(“产品”或“博客”),实体id(表“产品”或“博客”中的id条目),slug(字符串唯一) 我正在尝试在文件App\Entity\Product中执行此操作: namespace-App\Entity; 使用条令\ORM\Mapping作为ORM; /** *@ORM\Entity(repository

我试图将不同实体的段塞存储在一个表中。 假设我们有两个实体和表,“product”和“blog”,还有第三个表——“slug”,用于存储它们的slug。表“slug”有以下列:
id
实体
(字符串(“产品”或“博客”),
实体id
(表“产品”或“博客”中的id条目),
slug
(字符串唯一)

我正在尝试在文件App\Entity\Product中执行此操作:

namespace-App\Entity;
使用条令\ORM\Mapping作为ORM;
/**
*@ORM\Entity(repositoryClass=“App\Repository\ProductRepository”)
*@ORM\Table(name=“product”)
*/
类产品
{
/**
*@ORM\Id()
*@ORM\GeneratedValue()
*@ORM\Column(type=“integer”)
*/
私人$id;
/**
*@ORM\Column(type=“string”,长度=255)
*/
私人产权;
/**
*@ORM\JoinTable(
*name=“slug”,
*连接柱={
*@ORM\JoinColumn(name=“entity”,options={“default”:“product”}),
*@ORM\JoinColumn(name=“entity\u id”,referencedColumnName=“id”),
*     },
* )
*/
私人$slug;
此代码引发一些错误:

[语义错误]从未导入属性App\Entity\Product::$slug中的批注“@JoinTable”。您是否忘记为此批注添加“use”语句


在实体管理器“product”和“blog”中,我需要getSlug和setSlug,以及最有可能的addSlug-它将把变量
$title
实体id
以及列
实体
行“product”或“blog”中的更改值添加到表“slug”中根据要创建的实体,错误告诉您它不知道什么是
@JoinTable
,请尝试更改此行:

 * @JoinTable(
为此:

 * @ORM\JoinTable(

修复了新错误:[创建错误]在属性App\Entity\Product::$slug上声明的注释@ORM\JoinColumn没有名为“options”的属性。可用属性:name、referencedColumnName、unique、nullable、onDelete、columnDefinition、fieldName。如何指定实体列和确切的短语,如“产品”或“博客”?我认为您必须在实体
\u construct()
方法或表单类型中执行此操作