是否支持 Doctrine Sluggable Unique_base 选项多个字段?

Posted

技术标签:

【中文标题】是否支持 Doctrine Sluggable Unique_base 选项多个字段?【英文标题】:Has support Doctrine Sluggable Unique_base option multiple fields? 【发布时间】:2015-07-10 04:39:01 【问题描述】:

我有一个像

这样的post表
id  slug title  content  objectKey  objectId

我想生成 3 个字段唯一的 slug。 [ title, objectKey, objectId ]

如何做到?

【问题讨论】:

我知道这是个老话题了。但如果有人仍在寻找这个,请尝试 unique_base 选项。 github.com/Atlantic18/DoctrineExtensions/blob/v2.4.x/doc/… 【参考方案1】:

来自 DoctrineExtension 的 Doctrine Sluggable 支持多个字段。

详情请看: https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/sluggable.md 和搜索:

    /**
     * @Gedmo\Slug(fields="title", "code")
     * @ORM\Column(length=128, unique=true)
     */
    private $slug;

如果 ObjectId 是关系,请查看:

/**
 * Person domain object class
 *
 * @Gedmo\Mapping\Annotation\Slug(handlers=
 *      @Gedmo\Mapping\Annotation\SlugHandler(class="Gedmo\Sluggable\Handler\RelativeSlugHandler", options=
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationField", value="category"),
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="relationSlugField", value="title"),
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="separator", value="/"),
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="urilize", value=true)
 *      )
 * , fields="title", "code")
 * @Doctrine\ORM\Mapping\Column(length=64, unique=true)
 */
private $slug;

【讨论】:

谢谢你,但我不想将 slug 更改为 / title-objectId 我只想检查基础作为唯一的 slug 生成。 你能举个例子吗?

以上是关于是否支持 Doctrine Sluggable Unique_base 选项多个字段?的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 2 - 使用表单时未设置 Sluggable

Symfony 2 蛞蝓空

Laravel cviebrock/eloquent-sluggable 将 @ 作为前缀或在路由中过滤它

CakePHP 2.1:德语变音符号的 Sluggable 行为

如何从 Doctrine sql 查询中映射列名?

PHP Laravel cviebrock/eloquent-sluggable 不起作用,因为“instanceof SluggableInterface”总是返回 false