use*_*112 1 cakephp diacritics slug cakephp-3.x
我正在使用 CakePHP 3.6,当我使用带有德语变音符号的单词时,例如:
\n\nText::slug('Grundst\xc3\xbccke')\nRun Code Online (Sandbox Code Playgroud)\n\n我会得到:
\n\n\n\n\nGrundstucke(其中 \xc3\xbc = u)
\n
但这是不正确的,我应该得到:
\n\n\n\n\nGrundstuecke(其中 \xc3\xbc = ue)
\n
是否有一个选项可以设置,以便元音变音按照我想要的方式进行转换?
\nText::slug()内部使用(transliterator_transliterate参见php doc)。
因此,您需要更改正在使用的默认音译器。
经过一番研究后,我找到了一个适合您的方法。
在 bootstrap.php 文件末尾添加:
\Cake\Utility\Text::setTransliteratorId( 'de-ASCII; Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove ');
Run Code Online (Sandbox Code Playgroud)
然后您的文本将按照您的预期进行转换。
我用来找到这个答案的资源:
Text::transliterate()de-ASCII