utf-8 - Symfony2、Doctrine2 : non english/letin slug

标签 utf-8 symfony doctrine-orm slug

我有一个社区,用户可以在其中创建自己的主题,也可以使用希伯来语或阿拉伯语等国际语言

我有主题的“名称”字段,我想从中生成 slugs

现在我已经使用 stofdoctrineBundle 和 Doctrine 扩展用阿拉伯语对其进行了测试

我像这样设置了 slug

/**
 * @Gedmo\Slug(fields={"name"})
 * @ORM\Column(length=255, unique=true, nullable=false)
 */
private $slug;

当我尝试用阿拉伯语创建一个新主题时,说这个字符串“??????”,sluggable 学说生成了以下slug: ly-qr

所以我的目标是拥有像这样的完整网址

http://www.mysite.com/查看-阿尔拉

出于搜索引擎优化的原因。

最佳答案

Florian,我尝试了你的方法,但它看起来对我的需求来说太复杂了,所以我走了一条更简单的路:

  • 完全禁用学说扩展

  • 在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;
    }
    

问题已解决,阿拉伯语现在显示得像蛞蝓一样好。

关于utf-8 - Symfony2、Doctrine2 : non english/letin slug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248556/

相关文章:

powershell - 覆盖Powershell>快捷方式

angular - 用 typescript 编写的字符串未正确编码

php - Doctrine 2 与连接表中附加列的多对多关系

php - 学说 2.2 ORM : find extended entity

php - Doctrine ORM CLI 工具不工作

php - UTF-8 PHP 将不可打印字符 "space"替换为不可打印字符 "line break"

perl - utf8 "\xFF"未映射到 tokenizer.perl 第 44 行 <STDIN> 第 1 行的 Unicode。

php - 覆盖子包中的 Doctrine Mappgins

php - 捕获不同的异常类型

php - 如何在 Zend Framework 2 中配置学说扩展?