0
我想將一個Customer
模型作爲JSON存儲在JS變量中。下面是我試過的方法和我在他們每個人的發現的陷阱:如何正確地將數據從PHP傳遞到JS
{{ $customer }}
,使生成的代碼中<script>
這個樣子的:var customer = {"id":1, ... "}
,與Uncaught SyntaxError: Unexpected token &
錯誤而失敗。另外,如果PHP中的變量是null
,那麼在JS中變成var customer = ;
,這會破壞代碼。{!! $customer !}}
存儲數據正常var customer = {"id":101, ... }
,但它從相同的問題{{ }}
遭受當變量是在PHPnull
上方。{!! json_encode($customers->toArray()) !!};
適用於集合,但不適用於單個模型對象 - 在後一種情況下,PHP會嘗試在空值上調用toArray()
而失敗。此外,{!! !!}
容易受到XSS攻擊。
爲我工作的那個是{!! $customer ?? 'undefined' !!}
。它可以妥善處理所有情況,但它很不安全。另一種解決方案似乎是{!! json_encode($customer) !!}
,但它同樣受到安全問題的困擾。我想知道它是否可以簡化爲{{ }}
,或者有更好的方法。
謝謝!
使用一個Ajax請求得到一個單一的'customer',通過'data.customer.id'或訪問可以通過for(var data.customers中的var customer){console.log(data.customers [customer] .id)來訪問客戶列表。 ''或者,如果在'.blade.php'文件中有'
嘗試isset
來源
2017-02-22 01:31:29 GuaHsu
那麼,如果它沒有設置,那麼它會是'VAR客戶=;'這是一個語法錯誤 – Alex
這並沒有提供一個問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/15294859) – xinaiz
@BlackMoses好了,現在我知道了,謝謝:)! – GuaHsu
我使用這個包,確實神奇爲您提供:
https://github.com/laracasts/PHP-Vars-To-Js-Transformer
來源
2017-02-22 12:21:15 d1c1pl3