Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Изначально он удаляет все , и ., а мне в определенном месте нужно разрешить использование ,.
Нашел класс 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 переносить к себе
Может есть более простой способ?
Не в сети
Самый оптимальный вариант создания slug - https://github.com/spatie/laravel-sluggable
Не в сети
Я свой helper делаю для таких случаев.
Не в сети
Страницы 1