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

Posted

技术标签:

【中文标题】Laravel 5:在视图模板中获取所有传递的数据【英文标题】:Laravel 5: Get all passed data in view template 【发布时间】:2015-06-24 06:43:06 【问题描述】:

目标是我想在一个全局 javascript 变量中将 ALL 传递的数据从控制器传递到视图,这是一个示例:

在控制器中

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 中

【问题讨论】:

var _backendData = !! $data1 !! 我想获取控制器传递给视图的所有数据,不仅是 $data1,我编辑了我的帖子并添加了 $data2... 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

查看:

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

【讨论】:

【参考方案3】:

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

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

查看:

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

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

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

【讨论】:

感谢您的帮助,我想过将所有数据放在一个变量中,但我正在寻找一种更“舒适”的方式

以上是关于Laravel 5:在视图模板中获取所有传递的数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 - 所有模板中都可用的全局 Blade 视图变量

在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量

Laravel 5.2 - 如何将变量(数组和整数)从视图传递到控制器?

如何在 Laravel 5 中的视图模板上显示会话数据

laravel 视模板情况加载视图

如何在 Laravel 5.3 中获取当前的语言环境