Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 27.03.2019 12:03:03

Как модернизировать Str::slug в laravel

Изначально он удаляет все , и ., а мне в определенном месте нужно разрешить использование ,.
Нашел класс Str по адресу \vendor\laravel\framework\src\Illuminate\Support\Str
И функцию slug, подправил как мне нужно(Добавил $field):

public static function slug($title, $separator = '-', $language = 'en', $field = false)
    {
        $title = $language ? static::ascii($title, $language) : $title;

        // Convert all dashes/underscores into separator
        $flip = $separator === '-' ? '_' : '-';

        $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title);

        // Replace @ with the word 'at'
        $title = str_replace('@', $separator.'at'.$separator, $title);

        if($field) {
            $title = str_replace(',', '.', $title);
            $title = static::lower($title);
        } else {
            // Remove all characters that are not the separator, letters, numbers, or whitespace.
            $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', static::lower($title));
        }

        // Replace all separator characters and whitespace by a single separator
        $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title);

        return trim($title, $separator);
    }

И вызываю Str::slug('1,2.4', '-', 'en', 1); - Все работает

Но получается, что при обновлении композера все может потерятся,и при переносе проекта, придется всегда копировать папку vendro.

Думал о переносе slug в свой класс, если я правильно понял, то там все связанно и придется весь класс Str переносить к себе

Может есть более простой способ?

Не в сети

#2 27.03.2019 12:16:32

Re: Как модернизировать Str::slug в laravel

Самый оптимальный вариант создания slug - https://github.com/spatie/laravel-sluggable

Не в сети

#3 04.04.2019 22:46:15

Re: Как модернизировать Str::slug в laravel

Я свой helper делаю для таких случаев.

Не в сети

Подвал раздела