我有一个社区,用户可以使用希伯来语或阿拉伯语等国际语言制作自己的主题
我有主题的“名称”字段,我想从中生成slu
现在我用阿拉伯语测试了它,使用了stofdoctrineBundle和Doctrine扩展
我设置了这样的slu
/**
* @Gedmo\Slug(fields={"name"})
* @ORM\Column(length=255, unique=true, nullable=false)
*/
private $slug;
当我尝试用阿拉伯语创建一个新主题时,请说这个字符串“عليقرا”,doctrine sluggable生成以下 slug:ly-qr
所以我的目标是拥有像这样的完整网址
http://www.mysite.com /علي-قرا
出于搜索引擎优化的原因。
答案 0 :(得分:4)
弗洛里安,我试过你的方式,但看起来太复杂了我的需求,所以我走了一条更容易的道路:
完全停用了学说扩展
在Utils \ MyFunctions下创建了一个新类,并使用基于symfony2博客教程的静态方法slugify。
设置名称时,我也用它设置了slug
public function setName($name)
{
$this->name = $name;
$this->setSlug($this->name);
}
public function setSlug($slug)
{
//now we generate the slug, from the utilities my function
$slug = Myfunctions::slugify($slug);
$this->slug = $slug;
}
问题解决了,阿拉伯语现在显得很好了。
答案 1 :(得分:2)
在gedmo的学说扩展中,slugifier的默认行为是将所有字符转换为ASCII。
如果您不想要这种行为,则必须创建自己的处理程序和/或您自己的 transliterator 方法。
文档here很好地解释了如何做到这一点。