Laravel 11: Ошибка транслитерации Str::slug()

При транслитерации методом Str::slug() - происходит не корректное преобразование.

Если покопаться в пробеме - то всё верно, в справочнике транлитерации происходит замещение элементов согласно последнему расширению соответсвий значений. Но оно предопределяет не соответствующую кодировке от ГОСТ.

Так же в справочнике Laravel говорится что Вам теперь нужно использовать следующий синтаксис вызова:

Str::of( $title )->slug('-');

что затруднительно на предыдущих проектах, и не даёт совершенно никакого эффекта от тривиального вызова:

Str::slug( $title );

Найдя библиотеку Illuminate\Support\Str вы можете найти два метода, в которых четкое задание языка, без какой либо гибкости настройки в env файле:

public static function ascii($value, $language = 'en')
{
    return ASCII::to_ascii((string) $value, $language, replace_single_chars_only: false);
}

и

public static function slug($title, $separator = '-', $language = 'en', $dictionary = ['@' => 'at'])
{
...
}

Значит можно сделать вывод: Нам нужно именовать параметры функций, и наилучший вариант установить параметр language первым (в случае чего можем удалить поиском по патерну).

Итак вооружаемся VS Code или другим инструментом, лезем в поиск и замену по всему проекту - в VS Code это пиктограмка лупы справа. Устанавливаем поиск и замену:

поиск: Str::slug(
замена: Str::slug( language: 'ru', title: 

ВАЖНО: проверьте файлы в которых будет замена и исключите их если это файлы vendor или стороних библиотек

Справочные материалы данной темы

CRG Home 2026

Не является публичной офертой.