2016-11-05 199 views
2

在Laravel的主要应用程序模板有以下行laravel CSRF令牌与枝条

<script>window.Laravel = <?php echo json_encode(['csrfToken' => csrf_token(),]); ?></script>

我用嫩枝模板和需要更改该行以枝杈工作。然而,我会想到改变它到

<script>window.Laravel = {{ data|json_encode(['csrfToken': csrf_token(),]) }}</script><script>window.Laravel = {{ data|json_encode(['csrfToken' => csrf_token(),]) }}</script> 会做的伎俩,但它只是错误。什么是重写这个的正确方法?

+0

什么'data'变量? – martin

回答

1

正确的格式应该是:

<script>window.Laravel = {{ {'csrfToken': csrf_token()}|json_encode()|raw }}</script> 

详情参见:http://twig.sensiolabs.org/doc/filters/json_encode.html

+0

不幸的是,这不起作用,因为它提供了以下输出。 'window.Laravel = {" csrfToken ":" umq1L5R2rznr5hFJGrnAzqRH62soeQJ2lUub5kDs "}' –

+1

@CraigWard我想你需要用'raw'过滤器来链接它。我不知道你的逃跑套装是什么。我更新了我的口水。 – martin

0

这似乎这样的伎俩

<script>window.Laravel = {"csrfToken":"{{csrf_token()}}"}</script>

+1

这是一个非常糟糕的方式来制作JSON :)。你应该总是依靠'json_decode'来为你做适当的转义。 – martin