2016-11-05 170 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