Laravel 5: 获取视图模板中所有传递的数据

Laravel 5: Get all passed data in view template

objective 是我想通过 ALL 将数据从控制器传递到单个全局 JavaScript 视图中的视图,这是一个示例:

控制器中

index(){
 return veiw('path.to.view', ['data1' => $data1, 'data2' => $data2]);
}

在视图中

<script>
   var _backendData = {!! $allData !!}
   //$allData should contain ALL the passed data from the controller
</script>

我将从控制器接收到的所有数据存储在 $allData

要访问所有这些数据,请将其作为根数组的一项传递。因为这些键成为视图变量。

return view('path.to.view', [
   'allData' => ['data1' => $data1, 'data2' => $data2]
]);

查看:

<script>
    var _backendData = {!! $allData !!}
</script>

但是这不会正常工作。您应该使用 JSON 将数据传递给 JavaScript:

var _backendData = JSON.parse("{!! json_encode($allData) !!}");

在控制器上设置 - 使用多维数组传递数据,在blade文件中获取。

return view('path.to.view', ['allData' => ['data1' => $data1, 'data2' => $data2]]);

当您返回数据数组时,您可以一个一个地访问元素,如下所示。您不能只将 PHP 数组指定为 JavaScript 数组。

return view('path.to.view', [
   'allData' => ['data1' => $data1, 'data2' => $data2]
]);

查看:

<script>
    var _backendData = {!! $allData['data1'] !!}
</script>