Строка 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 чтобы иметь возможность преобразовать любой символ, имеющий свойство "алфавит", например Č, Ć и т.д.