清晰地将大型JSON数组从Laravel传递到Javascript



所以在我的控制器逻辑中,我建立了一个大的数据数组,我将其json_encode转换为传递给我的视图的变量。然而,我希望这些数据可以在客户端使用Javascript进行排序——我不认为排序的细节是相关的,但我很好奇从PHP到Javascript的最佳方式是什么。目前,我想在我的html中添加一个标签,比如

<script type="text/javascript">var jsonData = <?php echo $myData ?>; </script>

其中myData是我在PHP中制作的编码数组,然后jsonData可供我在其他任何地方使用。

但是,这将意味着整个丑陋的数组将显示在我的页面的源代码中。这不是安全问题或其他问题,但我觉得一定有更好的方法来做到这一点,而不是那么"丑陋"。任何建议都很感激。

您有两个选择。

如果你不想要"丑陋"的HTML源,你可以用ajax查询你的应用程序,并将你的json数组存储在一个变量中。这可以通过一个简单的路由和控制器方法来实现。

在你的routes.php

Route::get('api/myData',array('as'=>'api.myData','uses'=>'MyController@getMyData'));

在你的MyController.php

public function getMyData() {
    return whateverYouWant();
}

你可以做一个ajax请求route('api.myData')

route方法是一个全局函数,可以在视图中使用。它将采用命名的路由api.myData,并为它生成一个URL。

另一个选项如您所描述的,将数组传递给视图。

最新更新