【问题标题】:Laravel 5: Get all passed data in view templateLaravel 5:在视图模板中获取所有传递的数据
【发布时间】: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...

标签: php view laravel-5 blade


【解决方案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) !!}");
      

      【讨论】:

      • 感谢您的帮助,我想过将所有数据放在一个变量中,但我正在寻找一种更“舒适”的方式
      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2019-01-24
      • 2020-09-26
      • 2019-10-25
      相关资源
      最近更新 更多