При транслитерации методом 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: