В чем разница между {{ }} и {!!!!} в файлах лезвий laravel?
В фреймворке laravel мы можем использовать blade-сервер для добавления кода PHP в HTML-файл.
Мы используем оба {{ }}
а также {!! !!}
синтаксис в блейд-файлах Laravel.
В чем разница между ними?
6 ответов
Если вы передаете данные из вашего контроллера в представление с некоторыми стилями HTML, такими как:
$first = "<b>Narendra Sisodia</b>";
И это доступно, в пределах лезвия, с {{ $first }}
тогда вывод будет:
<b>Narendra Sisodia</b>
Но если он доступен с {!! $first !!}
тогда вывод будет:
Нарендра Сисодия
Если вы не хотите, чтобы данные были экранированы, используйте {!! !!}
еще использовать {{ }}
,
Чтобы избежать использования данных
{{ $data }}
Если вы не хотите экранировать данные, используйте ниже
{!! $data !!}
из документации: https://laravel.com/docs/5.1/blade
По умолчанию Blade {{ }}
операторы автоматически отправляются через функцию htmlentities в PHP, чтобы предотвратить атаки XSS. Если вы не хотите, чтобы ваши данные были экранированы, вы можете использовать следующий синтаксис:
Hello, {!! $name !!}.
Операторы Blade {{ }} автоматически отправляются через функцию htmlentities в PHP, чтобы предотвратить атаки XSS.
Вы можете увидеть больше здесь: https://laravel.com/docs/master/blade
В Ларавеле{{ }}
должен передавать данные в виде обычного текста с экранированием HTML, в то время как{!! !!}
передавать данные как контент как есть, без экранирования HTML.
Например: у меня есть$status = '<b>Active Status</b>';
переменная, которая хранит содержимое HTML в виде данных.
Теперь, если я напишу эти данные как{{ $status }}
Затем он вернется какplain text
.
Ожидаемый результат:
<b>Active Status</b>
Но если я напишу эти данные как{!! $status !!}
тогда он вернется какHTML
код.
Ожидаемый результат: