2

使用(对于 Symfony)我根据它的属性StofDoctrineExtensionsBundle为我的实体生成一个 slug,如下所示:InstitutioninternationalName

机构.php

/**
 * @ORM\Column(type="string", length=100, unique=true)
 * @Gedmo\Slug(fields={"internationalName"})
 */
private $slug;

sluggable: true在我的配置设置中,当创建新的Institution或更新现有的 时,我已经设置并生成了独特的 slug 按预期工作。

在刷新到数据库之前,我需要控制器中生成的 slug。问题是,当新实体刷新到数据库时会生成 slug。我搜索了这个问题,发现了两个没有令人满意的答案的问题,这里这里

像这样更改getSlug()实体中的最佳建议:

public function getSlug()
{
    if (!$this->slug) {
        return Urlizer::urlize($this->getInternationalName());
    }
    return $this->slug;
}

但是,internationalName我的实体不必是唯一的,因此如果internationalName数据库中已经存在“预刷新的 slug”,则它可以是现有的,这会在我的控制器中产生问题。

是否有生成独特的段塞预冲洗的解决方案?

4

0 回答 0