Экранирование вывода, но разрешение ‹p› в Laravel

В моем приложении Laravel я позволяю пользователям сохранять некоторый текст из текстовой области. При выводе текста я хотел бы избежать текста, полученного из БД, но также преобразовать любые разрывы строк из текста в теги <p>. У меня есть функция nl2p(), которая хорошо подходит для этого, но она экранируется, когда я помещаю ее в тройные скобки, что противоречит цели: {{{ nl2p($bio) }}}

Я попытался сделать что-то вроде этого:

<?php $formatted_bio = {{{ $user->bio }}}; ?>
<h2>{{ nl2p($formatted_bio) }}</h2>

но данные не могут быть отражены в такой переменной. Какие-нибудь креативные решения, которые я мог упустить из виду?


person Josh Mountain    schedule 31.10.2014    source источник


Ответы (1)


Попробуйте использовать вспомогательную функцию e(), которую предоставляет Laravel. В основном это то, что Blade вызывает под капотом, когда вы ставите тройные фигурные скобки.
Итак, у вас будет:

<h2>{{ nl2p(e($user->bio)) }}</h2>
person lukasgeiter    schedule 31.10.2014