У меня есть переменная PHP, и мне нужно использовать форматирование текста (например, полужирный), но это невозможно с имеющимся у меня кодом.

Как я мог это сделать?

Например:

Мой текст:

<td>{{ $item->item_category->name ?? "Eliminaste esta Categoría" }}</td>

Но мне нужно:

<td>{{ $item->item_category->name ?? "<b>Eliminaste esta Categoría</b>" }}</td>

Я попробовал последний код, но он не работает.

1
Eduardo Rafael 14 Июн 2021 в 03:59

2 ответа

Лучший ответ

Лично я бы рекомендовал следовать ответу Watercayman, но если вы действительно хотите сделать это по-своему, вы можете использовать:

{!! $item->item_category->name ?? "<b>Eliminaste esta Categoría</b>" !!} 

Как подробно описано в документации.

Чтобы объяснить разницу между ними:

{{ $var }} запускает echo htmlspecialchars($var);, который выполняет несколько функций, включая преобразование <b> в &lt;b&gt;.

Запуск альтернативы {!! $var !!} просто выполняет echo $var.

Причина, по которой вы можете (должны) использовать первый вариант, - это очистить данные, отправленные пользователем, для предотвращения потенциальных угроз безопасности. В вашем случае, поскольку это жестко закодированная строка, которую вы написали, это не должно быть проблемой.

3
Kirk Beard 14 Июн 2021 в 04:01

Сохраните потенциально опасное значение данных экранированным, а затем снимите экранирование добавляемого текста (известного текста) в виде простого простого HTML:

@if(isset($item->item_category->name))
    <td>{{ $item->item_category->name }}</td>
@else
    <td><b>Eliminaste esta Categoría</b></td>
@endif
3
Watercayman 14 Июн 2021 в 01:58