Laravel Blade (отображение данных в виде новой строки)

Итак, у меня есть <textarea> в моей форме. Пользователь может либо ввести новую строку, либо одну строку. Поэтому, когда пользователь просматривает текст, он будет отображаться так, как он его вводит.

Форма

<textarea name="jo_unit" class = 'form-control' required="required" cols = '4'></textarea>

Ожидаемый результат

ТЕСТИРОВАНИЕ 1
ТЕСТИРОВАНИЕ 2
ТЕСТИРОВАНИЕ 3

Что я получаю

Что я получаю

Мой код при его отображении

{{ nl2br(@$get['result'][0]->jo_unit_2) }}

person jerome    schedule 19.02.2018    source источник


Ответы (2)


Безопасность: этот код допускает атаки XSS и не готов к работе.

используйте 1_:

{!! nl2br(@$get['result'][0]->jo_unit_2) !!}
person Sohel0415    schedule 19.02.2018
comment
Могу я спросить, зачем нужно использовать !! и что это означает? - person jerome; 19.02.2018
comment
потому что операторы Blade {{ }} автоматически отправляются через функцию PHP htmlentities для предотвращения XSS-атак, но {!! !!} не - person Sohel0415; 19.02.2018

Использовать

{!! nl2br(e(@$get['result'][0]->jo_unit_2)) !!}

{!! !!} создает экранированный вывод и разрешает атаки HTML (и XSS-атаки).

Чтобы снова сделать его безопасным, вам также необходимо использовать e() см. документацию помощников.

person PiTheNumber    schedule 16.04.2020