Как вывести переменную Blade при извлечении переменной из базы данных - PullRequest
0 голосов
/ 25 октября 2018

Я использую Laravel 5.7 У меня есть переменная, хранящаяся в базе данных, и я хочу, чтобы она была оценена Blade перед рендерингом.

База данных

Поле: имя, значение: {{$ organisername}}

Я извлекаю этот фрагмент данных в шаблон Blade следующим образом.

<h4>1. Registration</h4>
<br />
{{ $job->organisername }}

Затем Chrome отображает {{$ organisername}} вместо оценки {{$ organisername}} .

1.Регистрация

{{$ organisername}}

Если я введу {{$ organisername}} в шаблон Blade, он получит оценку John , когда страницаоказывается ..

1.Регистрация

Джон

Я использую TinyMCE для ввода {{$ organisername}} в текстовое поле, и оно сохраняется в базе данных, если это поможет.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Шаблоны Blade скомпилированы в PHP перед их оценкой.По сути, Blade компилирует:

{{ $job->organisername }}

Into

<?php echo e($job->organisername); ?>

Как только вы поймете это и то, как PHP оценивает переменные, вы должны понимать, почему вы не можете установить конструкции Blade вбазы данных и оцените их при печати. ​​

По сути, это то же самое, что выводить буквальную строку:

<?php echo '{{ $organisiername }}'; ?>

Вы бы не хотели, чтобы Blade или PHP оценивали любое выражение, с которым они сталкиваются, так как онипечать, которая потенциально может быть очень небезопасной.

0 голосов
/ 25 октября 2018

Если под оценкой вы хотите сделать некоторую согласованность для вашей переменной, знайте, что этот оператор эха Blade "{{}}" уже делает это с htmlspecialchars , как объяснено в документации:

https://laravel.com/docs/5.7/blade#displaying-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...