Строка Laravel для понижения
Я пытаюсь преобразовать строку в нижний регистр на страницу представлений (index.blade.php)
Следующее - это то, что я хотел бы достичь.
<img src="images/teamnamesml.jpg logo">
Это моя попытка
<img src="images/{{ Str::lower($matchup->visitorTeam) }}sml.jpg">
Я получаю эту ошибку
FatalErrorException in ed1bb29e73e623d0f837c841ed066275 line 71:
Class 'Str' not found
Нужно ли импортировать класс Illuminate\Support\Str
в определенный файл?
Ответы
Ответ 1
Почему бы просто не использовать встроенный в PHP strtolower
?
<img src="images/{{ strtolower($matchup->visitorTeam) }}sml.jpg">
Или, если вам нужна полная поддержка UTF-8, вы можете использовать mb_strtolower($string, 'UTF-8')
который позволяет использовать умляуты и другие забавные вещи UTF-8. Это то, что делает функция Laravel Str::lower()
.
Ответ 2
Потому что в комментариях, которые вы задали еще, как это работает в способе Laravel, так что здесь альтернативное решение рядом с strtolower
и mb_strtolower
, которое также отлично работает.
Вы должны добавить namsepace перед методом, чтобы PHP и Laravel могли найти этот метод.
Итак, если вы хотите использовать его в Blade, сделайте следующее:
<img src="images/{{ Illuminate\Support\Str::lower($matchup->visitorTeam) }}sml.jpg">
Если вы хотите использовать его в контроллере или модели, вам нужно добавить пространство имен, где Str
находится сверху:
use Illuminate\Support\Str;
После этого вы можете вызывать его без префикса пространства имен:
Str::lower($test);
Ответ 3
Подумайте об использовании mb_strtolower
чтобы иметь возможность преобразовать любой символ, имеющий свойство "алфавит", например Č, Ć
и т.д.