laravel печатать json без преобразования в htmlentities

Привет, я новичок в шаблонах и laravel.

Я изменил разделители laravel на [[]] и [[[]]], используя

Blade::setContentTags("[[", "]]");
Blade::setEscapedContentTags("[[[", "]]]");

Теперь я хочу передать json в переменную javascript, например

var somevariable = [[json_encode($variableFromController)]];

но это преобразует строку json в объекты html, такие как

{"index":200}

Я искал и обнаружил, что {{!!json_encode($variableFromController)!!}} должен работать, но выполнение этого в моей системе, например [[!!json_encode($variableFromController)!!]], не оказывает никакого влияния.

Я знаю, что могу сделать что-то вроде <?php echo json_encode($variableFromController) ?>, но это последнее, что я хочу попробовать. есть ли какая-то конкретная вещь, которую я могу сделать?


person Arpita    schedule 07.04.2017    source источник


Ответы (1)


сначала Blade::setContentTags("[[", "]]"); означает, что заменить {!! на [[. а Blade::setEscapedContentTags("[[[", "]]]"); заменяет {{ на [[[.

поэтому для вашего условия [[ json_encode($variableFromController) ]] эквивалентно {!! json_encode($variableFromController) !!}

person M.Elwan    schedule 07.04.2017
comment
Хорошо, но когда я пишу [[ json_encode($variableFromController) ]], он печатает строку {&quot;index&quot;:200}, а не {"index":200}, как я могу напечатать строку плоскости без перестановки объектов html. - person Arpita; 07.04.2017
comment
Я думаю, что это не имеет ничего общего с laravel. это хтмл. в моем случае для тестирования я использовал <pre> //JSON content </pre>, но если вам нужен другой метод, я думаю, что JSON.stringify - это то, что решает ваш случай. посмотрите: это или это - person M.Elwan; 07.04.2017