2016-05-25 11 views
2

私はLaravelのStr::slug機能を使用していましたが、ユーザーが英語以外の文字のみを提出すると、スラッグは全く作成されません。英語以外の文字を持つスラッグ

これはしばらくGoogleで検索されており、解決策を見つけることができません。

あなたはこれに遭遇して修正を見つけましたか?

+0

http://killerwhalesoft.com/blog/make-laravel-slug-support-utf8-characters/ – ceejayoz

答えて

3

ブラウザやアプリケーションによっては、まだユニコードURLがうまく表示されない場合がありますので、代わりに国際的なスラッグを翻字することをおすすめします。私は個人的に私のプロジェクトの1つにこれを使用します:

public static function slugify($text) { 
    $text = preg_replace('~[^\\pL\d]+~u', '-', $text); 
    $text = trim($text, '-'); 
    if (function_exists('transliterator_transliterate')) $text = transliterator_transliterate('Any-Latin; Latin-ASCII', $text); 
    $text = iconv('utf-8', 'ASCII//TRANSLIT//IGNORE', $text); 
    $text = strtolower($text); 
    $text = preg_replace('~[^-\w]+~', '', $text); 

    return $text; 
} 
関連する問題