sen*_*nty 11 javascript php arrays jquery laravel
我想在JavaScript变量中传递/存储Laravel数组.我用过,->all()
所以我得到的结果是这样而不是对象:
array:83 [?
0 => 1
1 => 11
2 => 12
...
]
Run Code Online (Sandbox Code Playgroud)
我可以在视图中使用{{ $theArray }}
.
无论我尝试什么,我都无法将其转换为javascript数组.
我试过了
var array = {{ $theArray }};
var array = {{{ $theArray }}};
我觉得我很接近,但我无法理解
小智 49
var app = @json($array);
Run Code Online (Sandbox Code Playgroud)
奇迹般有效
Pra*_*lan 21
您可以使用 json_encode()
var array = {{ json_encode($theArray) }};
Run Code Online (Sandbox Code Playgroud)
或使用解析json字符串 JSON.parse()
var array = JSON.parse('{{ json_encode($theArray) }}');
Run Code Online (Sandbox Code Playgroud)
有时,您可能会将一个数组传递给您的视图,目的是将其呈现为 JSON 以初始化 JavaScript 变量。例如:
<script>
var app = <?php echo json_encode($array); ?>;
</script>
Run Code Online (Sandbox Code Playgroud)
但是,json_encode
您可以使用@json
Blade 指令代替手动调用。该 @json
指令接受与 PHPjson_encode
函数相同的参数:
<script>
var app = @json($array);
var app = @json($array, JSON_PRETTY_PRINT);
</script>
Run Code Online (Sandbox Code Playgroud)
该@json
指令对于播种 Vue 组件或 data-* 属性也很有用:
<example-component :some-prop='@json($array)'></example-component>
Run Code Online (Sandbox Code Playgroud)
https://laravel.com/docs/5.8/blade#blade-and-javascript-frameworks