我正在开发一个多语言 symfony 2 电子商务网站,该网站使用 URL 的 slugs。
目前两种语言的行为是产品的 slug(基于产品名称)也被翻译。所以我有这种网址:
- 英语:example.com/en/products/english-product-name
- 中文:example.com/zh/products/chinese-product-name
slug 基于名称,因此为每种语言保存在翻译表中。我想要的是只对两种语言都使用英语 slug。在我的实体文件中,它看起来像这样:
/**
* @Gedmo\Translatable
* @Gedmo\Sluggable(slugField="slug")
* @ORM\Column(type="string", unique=true)
*/
private $name;
/**
* @Gedmo\Translatable
* @Gedmo\Slug
* @ORM\Column(length=128, unique=true)
*/
private $slug;
我将StofDoctrineExtensionsBundle用于我的 slug 和翻译。
我考虑过创建一个不可翻译的附加字段,并以此为基础(而不是产品名称),但这似乎不是一个好方法。