让yii2的SluggableBehavior行为类支持中文的方法

阿北

要实现中文化我们需要借助一个开源库,这篇给大家介绍通过 overtrue/pinyin 来实现对中文的slug,实现代码很简单,通过对 SluggableBehavior 的value值进行解析即可。

这节的主要目的

  • 得到 SluggableBehavior 中文化的方法

  • 认识 overtrue/pinyin,这个库会对你很有用

例子还是接上篇,上篇传送门 http://nai8.me/sapper-view.ht...

先说说 overtrue/pinyin,这个是国内活跃的PHP开发者安正超的作品,基于 CC-CEDICT 词典的中文转拼音工具,更准确的支持多音字的汉字转拼音解决方案。

少言,直接开始。

安装 overtrue/pinyin

composer require "overtrue/pinyin:~3.0"

速度很快,安装成功,贴图留纪念。

原创安装

开始中文化

还是上篇的例子,假设username的名字叫做“贾宝玉”,我们利用overtrue/pinyin库分析出“jia-bao-yu”。

修改Member模型类

use Overtrue\Pinyin\Pinyin;
...
public function behaviors()
{
    return [
        [
            'class' => SluggableBehavior::className(),
            'slugAttribute' => 'slug',
            'value' => function($event) {
                $pinyin = new Pinyin();
                return $pinyin->permalink($this->username);
            }
        ]
    ];
}

这样就可以了,利用行为的value实现我们对slug的赋值功能。

完了

利用开源库很方便的实现了中文的SluggableBehavior行为,阿北建议大家仔细研究下这个pinyin库,很多实用的功能。到此为止,yii2的内置行为就算讲完了,下一篇我们开始讲解如何自己建立行为以及一些看似复杂的原理。

没完,还有一件小事

整个小广告,大家知道sf社区有讲座频道,我在7月24号会有一节专讲PHPSTORM工具的牛X功能讲解,感兴趣的去看看
https://segmentfault.com/l/15...


本文原创发布于微信公众号 北哥兄弟连

微信扫码可以关注

阅读 2.3k

阿北哥ya
阿北,一名独立开发者、讲师和奶爸。本专栏主要分享一些技术文章和独立开发经验。
4.1k 声望
909 粉丝
0 条评论
4.1k 声望
909 粉丝
文章目录
宣传栏