laravel print json without converting to htmlentities
嗨,我是模板和Laravel的新手。
我已使用将Laravel分隔符更改为[[]]和[[]]。
1 2
| Blade::setContentTags("[[","]]");
Blade::setEscapedContentTags("[[[","]]]"); |
现在我想把JSON传递给一个javascript变量,比如
1
| var somevariable = [[json_encode($variableFromController)]]; |
号
但这会将JSON字符串转换为HTML实体,如
我搜索后发现,{{!!json_encode($variableFromController)!!}}应该可以工作,但是在我的系统中,像[[!!json_encode($variableFromController)!!]]这样做不会产生任何影响。
我知道我可以做一些像这样的事情,但这是我最不想尝试的事情。我能做些什么具体的事情吗?
起初,Blade::setContentTags("[[","]]");意味着用[[代替{!!。而Blade::setEscapedContentTags("[[[","]]]");正以[[[取代{{。
所以对于你的情况,[[ json_encode($variableFromController) ]]与{!! json_encode($variableFromController) !!}是等价的。
- 好吧,但是当我写[[json_encode($variableFromController)]时,它会打印字符串{"index":200},而不是{"index":200},我如何在不重新关联HTML实体的情况下打印平面字符串。
- 我想这和拉拉维尔无关。它是HTML。在我的测试案例中,我使用的是[cc lang="php"] //JSON content </pre>,但是如果您想要其他方法,我认为JSON.stringify是解决您的案例的方法。看:这个还是这个