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 中传递数据控制器以查看获取未定义的变量