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