【问题标题】:laravel print json without converting to htmlentitieslaravel 打印 json 而不转换为 htmlentities
【发布时间】:2017-09-02 14:44:10
【问题描述】:

您好,我是模板和 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) ?> 的事情,但这是我想尝试的最后一件事。有什么我可以做的特定于 laravel 的事情吗?

【问题讨论】:

    标签: php json laravel-5.3 laravel-blade


    【解决方案1】:

    起初Blade::setContentTags("[[", "]]"); 表示将{!! 替换为[[。并且Blade::setEscapedContentTags("[[[", "]]]");{{ 替换为[[[

    所以对于您的条件[[ json_encode($variableFromController) ]] 相当于{!! json_encode($variableFromController) !!}

    【讨论】:

    • 好的,但是当我写 [[ json_encode($variableFromController) ]] 时,它会打印字符串 {"index":200} 而不是 {"index":200} 如何打印平面字符串而不需要替换 html 实体。
    • 我认为这与 laravel 无关。这是html。就我的测试而言,我使用的是<pre> //JSON content </pre>,但如果您想要其他方法,我认为JSON.stringify 可以解决您的问题。看:thisthis
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2017-01-31
    • 2011-04-17
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多