在我的控制器中,我在这个变量$month_g
dd($month_g);
我得到了
array:12 [▼
0 => array:2 [▼
"up_bytes" => 277664452
"down_bytes" => 198868462
]
1 => array:2 [▼
"up_bytes" => 0
"down_bytes" => 0
]
2 => array:2 [▶]
3 => array:2 [▶]
4 => array:2 [▶]
5 => array:2 [▶]
6 => array:2 [▶]
7 => array:2 [▶]
8 => array:2 [▶]
9 => array:2 [▶]
10 => array:2 [▶]
11 => array:2 [▶]
]
return view('page.index', get_defined_vars());
我希望能够在JS / View中访问此变量。
index.blade.php
我已尝试
@extends('layouts.internal.master')
@section('content')
..... // content in HTML
@stop
@section('pagescripts')
<script>
console.log('{{$month_g}}');
</script>
@stop
我一直在
htmlentities()期望参数1为字符串,给定数组
但是 console.log()能够打印出一个数组。
我如何console.log
出来?我在这里想念的是什么?
在Javascript中访问控制器变量的最佳方法是什么?
答案 0 :(得分:2)
如果$month_g
是PHP数组,您首先要将其转换为JSON,以便javascript可以使用它。
<script>
var month_g = <?php echo json_encode($month_g) ?>;
console.log(month_g);
</script>
PHP的json_encode
方法是将PHP变量输出为javascript变量的最安全的方法。即使你认为变量是一个整数或简单的字符串,json_encode
它只是为了安全。
旁注,如果您愿意,也可以使用Laravel的方式代替PHP标签。请注意,您需要使用{!!
代替{{
,以便输出不会被转义。
<script>
var month_g = {!! json_encode($month_g) !!};
答案 1 :(得分:1)
尝试json_encode()
return view('page.index', ['month_g' => json_encode($month_g)];
并从您的观点
@section('pagescripts')
<script>
console.log('{!! $month_g !!}');
</script>
@stop