Yii2 yii 2阿拉伯语
我使用了Yii Sluggable行为,它对英语很有效,但是如果我在name文本字段中编写阿拉伯语并创建一个新条目,则数据库中slug列的值为空Yii2 yii 2阿拉伯语,yii2,arabic,slug,Yii2,Arabic,Slug,我使用了Yii Sluggable行为,它对英语很有效,但是如果我在name文本字段中编写阿拉伯语并创建一个新条目,则数据库中slug列的值为空 public function behaviors() { return [ [ 'class' => SluggableBehavior::className(), 'attribute' =&
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'name',
'ensureUnique'=>true,
'slugAttribute' => 'slug',
],
];
}
有人知道如何让它支持阿拉伯语和其他语言吗?如果没有,是否有做这项工作的扩展
提前感谢。创建slug通常需要使用正则表达式来排除与正常URL格式不兼容的不需要的字符
preg_replace
或preg_match
中使用的正则表达式通常用于支持英文slug,因此排除了所有其他类型的字符,如阿拉伯语
我建议您使用适当的字符范围(包括阿拉伯语字符)编写自己的slaging函数。大概是这样的:
$slug = preg_replace("/[^a-zA-Z0-9ء-ي _\-]/u", "", $title);
这将排除除a-z、a-z、0-9和阿拉伯字母表中的字符以外的所有字符。它还将保留下划线、破折号和空格,您可以在以后需要时替换它们。尝试使用音译选项。@Beowulfenator Zelenin slug Behavior转换单词,例如“ahmd”,我不想让单词保持原样。例如:“مح㶕㶕ك”=>“مح㶕㶕-㶕”