我正在使用 Gedmo 生成我的 slug(https://github.com/doctrine-extensions/DoctrineExtensions/blob/main/doc/sluggable.md#basic-usage-examples)。但在这里我处于一个有点特殊的情况。
我想在“祖父”实体的实体上创建一个蛞蝓。
基本上我在实体A上。实体A作为父实体B,它具有实体C。我想从实体C的slug和实体A的字段创建一个slug。
当我只有一个关联(在 A 和 B 之间)的 slug 时,不用担心。但现在我真的不明白我该怎么做。
例如,对于需要实体 B 的 slug 的 slug,我会这样:
/**
* @ORM\Column(type="string", length=255)
* @Gedmo\Mapping\Annotation\Slug(handlers={
* @Gedmo\Mapping\Annotation\SlugHandler(class="Gedmo\Sluggable\Handler\RelativeSlugHandler", options={
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationField", value="entityB"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationSlugField", value="entityB_slug"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="separator", value="-")
* })
* }, fields={"reference"})
*/
private ?string $slug = null;
所以我想,如果我还有一个关联,我只需添加一个这样的关系字段行:
/**
* @ORM\Column(type="string", length=255)
* @Gedmo\Mapping\Annotation\Slug(handlers={
* @Gedmo\Mapping\Annotation\SlugHandler(class="Gedmo\Sluggable\Handler\RelativeSlugHandler", options={
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationField", value="entityB"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationField", value="entityC"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationSlugField", value="entityC_slug"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="separator", value="-")
* })
* }, fields={"reference"})
*/
私人?字符串 $slug = null;
我还尝试在这样的关系中直接指示父母:
/**
* @ORM\Column(type="string", length=255)
* @Gedmo\Mapping\Annotation\Slug(handlers={
* @Gedmo\Mapping\Annotation\SlugHandler(class="Gedmo\Sluggable\Handler\RelativeSlugHandler", options={
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationField", value="entityB"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationSlugField", value="entityC.entityC_slug"),
* @Gedmo\Mapping\Annotation\SlugHandlerOption(name="separator", value="-")
* })
* }, fields={"reference"})
*/
private ?string $slug = null;
但什么都没有过去,他告诉我他不能扼杀它。你有想法吗 ?