🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ پویا پارسایی
معرفی پکیج sluggable
جامعه لاراول ایجاد شده در ۲۱ اردیبهشت ۱۴۰۱

سلام و عرض ادب

در تکمیل فرمایشات استاد، واسه ثبت slug توی لاراول یه پکیجی هست که به شدت کار رو آسون میکنه، و نیازی نیست از کاربر slug رو بگیریم.

لینک گیت هابش اینجاست.

با این پکیج شما به لاراول میگید که به طور مثال مقداری که میخوای توی فیلد name بذاری رو بگیر، تبدیلش کن به slug و بذارش توی فیلد slug

همچنین این پکیج واسه زبان فارسی به درستی کار نمیکنه و توی دیتابیس بهم میریزه که میتونید با این روش مشکلش رو برطرف کنید:

بعد از نصب پکیج وارد app/config بشید و فایل sluggable.php رو باز کنید، یکی از اعضای آرایه ش method هستش، که باید مقدارش رو به این صورت ویرایش کنید:

'method' => function ($string, $separator = '-') {
    $_transliteration = ["/ö|œ/" => "e",
        "/ü/" => "e",
        "/Ä/" => "e",
        "/Ü/" => "e",
        "/Ö/" => "e",
        "/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/" => "",
        "/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/" => "",
        "/Ç|Ć|Ĉ|Ċ|Č/" => "",
        "/ç|ć|ĉ|ċ|č/" => "",
        "/Ð|Ď|Đ/" => "",
        "/ð|ď|đ/" => "",
        "/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/" => "",
        "/è|é|ê|ë|ē|ĕ|ė|ę|ě/" => "",
        "/Ĝ|Ğ|Ġ|Ģ/" => "",
        "/ĝ|ğ|ġ|ģ/" => "",
        "/Ĥ|Ħ/" => "",
        "/ĥ|ħ/" => "",
        "/Ì|Í|Î|Ï|Ĩ|Ī| Ĭ|Ǐ|Į|İ/" => "",
        "/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/" => "",
        "/Ĵ/" => "",
        "/ĵ/" => "",
        "/Ķ/" => "",
        "/ķ/" => "",
        "/Ĺ|Ļ|Ľ|Ŀ|Ł/" => "",
        "/ĺ|ļ|ľ|ŀ|ł/" => "",
        "/Ñ|Ń|Ņ|Ň/" => "",
        "/ñ|ń|ņ|ň|ʼn/" => "",
        "/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/" => "",
        "/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/" => "",
        "/Ŕ|Ŗ|Ř/" => "",
        "/ŕ|ŗ|ř/" => "",
        "/Ś|Ŝ|Ş|Ș|Š/" => "",
        "/ś|ŝ|ş|ș|š|ſ/" => "",
        "/Ţ|Ț|Ť|Ŧ/" => "",
        "/ţ|ț|ť|ŧ/" => "",
        "/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/" => "",
        "/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/" => "",
        "/Ý|Ÿ|Ŷ/" => "",
        "/ý|ÿ|ŷ/" => "",
        "/Ŵ/" => "",
        "/ŵ/" => "",
        "/Ź|Ż|Ž/" => "",
        "/ź|ż|ž/" => "",
        "/Æ|Ǽ/" => "E",
        "/ß/" => "s",
        "/IJ/" => "J",
        "/ij/" => "j",
        "/Œ/" => "E",
        "/ƒ/" => ""];
    $quotedReplacement = preg_quote($separator, '/');
    $merge = [
        '/[^\\s\\p{Zs}\\p{Ll}\\p{Lm}\\p{Lo}\\p{Lt}\\p{Lu}\\p{Nd}]/mu' => ' ',
        '/[\\s\\p{Zs}]+/mu' => $separator,
        sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
    ];
    $map = $_transliteration + $merge;
    unset($_transliteration);
    return preg_replace(array_keys($map), array_values($map), $string);
},

امیدوارم بدردتون بخوره.

سلام پوریا جان

ممنون بابت اینکه به دوستانت هم کمک میکنی ?

محمد گازری ۲۱ اردیبهشت ۱۴۰۱، ۱۲:۰۹

ممنون پویا پارسایی عزیز

سید جمال جلالی ۰۱ آذر ۱۴۰۱، ۱۲:۱۷