使用(对于 Symfony)我根据它的属性StofDoctrineExtensionsBundle
为我的实体生成一个 slug,如下所示:Institution
internationalName
机构.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”,则它可以是现有的,这会在我的控制器中产生问题。
是否有生成独特的段塞预冲洗的解决方案?