0

我正在使用 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;

但什么都没有过去,他告诉我他不能扼杀它。你有想法吗 ?

4

0 回答 0