В моем приложении Laravel я позволяю пользователям хранить текст из текстовой области. При выводе текста я хотел бы экранировать текст, извлеченный из БД, а также преобразовать любые разрывы строк из текста в <p>
теги. У меня есть функция nl2p()
это хорошо работает для этого, но оно избегается, когда я помещаю его в тройные скобки, побеждая цель: {{{ nl2p($bio) }}}
Я пытался сделать что-то вроде этого:
<?php $formatted_bio = {{{ $user->bio }}}; ?>
<h2>{{ nl2p($formatted_bio) }}</h2>
но данные не могут быть отражены в такой переменной. Какие-нибудь креативные решения, которые я мог упустить из виду?
Попробуйте использовать e()
вспомогательная функция Laravel обеспечивает. Это в основном то, что Blade называет под капотом, когда вы делаете тройные брекеты.
Итак, у вас будет:
<h2>{{ nl2p(e($user->bio)) }}</h2>
Других решений пока нет …