我希望将Customer
模型作为JSON存储在JS变量中。以下是我尝试的方法以及我在每个方法中发现的陷阱:
{{ $customer }}
会使<script>
中生成的代码如下所示:var customer = {"id":1, ... "}
,导致Uncaught SyntaxError: Unexpected token &
错误失败。此外,如果PHP中的变量为null
,那么在JS中它变为var customer = ;
,这会破坏代码。
{!! $customer !}}
正确存储数据var customer = {"id":101, ... }
,但当PHP中的变量为{{ }}
时,它会遇到与null
相同的问题。
{!! json_encode($customers->toArray()) !!};
适用于集合,但不适用于单个模型对象 - 在后一种情况下,PHP会因尝试在null上调用toArray()
而失败。此外,{!! !!}
容易受到XSS攻击。
为我工作的是{!! $customer ?? 'undefined' !!}
。它可以妥善处理所有情况,但它很笨拙且不安全。另一个解决方案似乎是{!! json_encode($customer) !!}
,但同样,它也遇到了安全问题。我想知道它是否可以简化为{{ }}
,或者可能有更好的方法。
谢谢!
答案 0 :(得分:0)
那个时候我有点困难,但是我做的唯一一件事(不是更好的方法)就是这个......
我将值分配到数据标签示例
<input type="hidden" data-customer="{{json_encode(custumer)}}">
然后我使用javascript / JQuery访问我脚本中的信息
答案 1 :(得分:0)
尝试isset
@if(isset($custumer)){{ $custumer }}@endif
答案 2 :(得分:0)
我正在使用这个包,它为你带来了魔力: