【问题标题】:How to use sluggable handler, only if a slug is empty?仅当 slug 为空时,如何使用 sluggable 处理程序?
【发布时间】:2018-05-25 05:03:38
【问题描述】:

我使用 Symfony 3 框架和 sluggable 学说扩展。我需要用这样的代码生成一个 slug:

<?php
/**
 * @Gedmo\Mapping\Annotation\Slug(handlers={
 *      @Gedmo\Mapping\Annotation\SlugHandler(class="Gedmo\Sluggable\Handler\TreeSlugHandler", options={
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="parentRelationField", value="parent"),
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="separator", value="/")
 *      })
 * }, fields={"title", "code"})
 * @Doctrine\ORM\Mapping\Column(length=64, unique=true)
 */
private $slug;

我使用 TreeSlugHandler,但我想使用这个处理程序,只有在没有设置 slug 的情况下(如果它是空的),因为处理程序会重写 slug。我怎样才能做到这一点?

【问题讨论】:

  • 这是默认行为:只有在为空时才会生成 slug
  • 您尝试过可更新选项吗?

标签: php symfony slug doctrine-extensions


【解决方案1】:

您需要将可更新设置为 false。 The documentation is here

相关行是:

updatable (optional, default=true) - true 更新 slug sluggable 字段更改,false - 否则

例如:

/**
 * @Gedmo\Slug(fields={"meta_title"}, updatable=false)
 * @ORM\Column(length=128, unique=true)
 */
private $slug = "";

【讨论】:

    猜你喜欢
    • 2017-11-13
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多