CakePHP slug 将我的 Bangla 文本转换为英语
CakePHP slug converting my Bangla text to English
我正在尝试在 slug 中转换后保存类别名称
所以在实体中我使用 setter 将我的文本转换为 slug 文本
protected function _setName($name)
{
return Text::slug($name);
}
在输入名称 "আমি তোমায় ভালোবাসি"
中发送 post 请求后
已进入数据库
ami-tomaya-bhalobasi
将transliteratorId设为false后
return Text::slug($name,[
'transliteratorId' => false
]);
我得到输出:আম-ত-ম-য-ভ-ল-ব-স
我的预期结果是
আমি-তোমায়-ভালোবাসি
我怎样才能得到我想要的结果?
slugs 的全部意义在于获得“安全”的纯 US-ASCII 字符串。如果您似乎只想删除空格,您可以使用一个简单的正则表达式:
preg_replace('/\s/u', '-', 'আমি তোমায় ভালোবাসি')
但是,我建议您首先仔细检查为什么您认为这是必要的。正确编码的 URL 无论如何都会将空格显示为 %20
,这在拉丁脚本文本中是“丑陋的”,但在其他脚本中会被忽视:
var_dump(rawurlencode('আমি তোমায় ভালোবাসি'));
string(159) "%E0%A6%86%E0%A6%AE%E0%A6%BF%20%E0%A6%A4%E0%A7%8B%E0%A6%AE%E0%A6%BE%E0%A6%AF%E0%A6%BC%20%E0%A6%AD%E0%A6%BE%E0%A6%B2%E0%A7%8B%E0%A6%AC%E0%A6%BE%E0%A6%B8%E0%A6%BF"
我正在尝试在 slug 中转换后保存类别名称
所以在实体中我使用 setter 将我的文本转换为 slug 文本
protected function _setName($name)
{
return Text::slug($name);
}
在输入名称 "আমি তোমায় ভালোবাসি"
中发送 post 请求后
已进入数据库
ami-tomaya-bhalobasi
将transliteratorId设为false后
return Text::slug($name,[
'transliteratorId' => false
]);
我得到输出:আম-ত-ম-য-ভ-ল-ব-স
我的预期结果是
আমি-তোমায়-ভালোবাসি
我怎样才能得到我想要的结果?
slugs 的全部意义在于获得“安全”的纯 US-ASCII 字符串。如果您似乎只想删除空格,您可以使用一个简单的正则表达式:
preg_replace('/\s/u', '-', 'আমি তোমায় ভালোবাসি')
但是,我建议您首先仔细检查为什么您认为这是必要的。正确编码的 URL 无论如何都会将空格显示为 %20
,这在拉丁脚本文本中是“丑陋的”,但在其他脚本中会被忽视:
var_dump(rawurlencode('আমি তোমায় ভালোবাসি'));
string(159) "%E0%A6%86%E0%A6%AE%E0%A6%BF%20%E0%A6%A4%E0%A7%8B%E0%A6%AE%E0%A6%BE%E0%A6%AF%E0%A6%BC%20%E0%A6%AD%E0%A6%BE%E0%A6%B2%E0%A7%8B%E0%A6%AC%E0%A6%BE%E0%A6%B8%E0%A6%BF"