首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JavaScript从Laravel控制器获取所有值以进行索引?

如何使用JavaScript从Laravel控制器获取所有值以进行索引?
EN

Stack Overflow用户
提问于 2022-04-07 09:45:19
回答 2查看 143关注 0票数 0

我正在使用Laravel从一个表中获取所有数据,并显示传单的坐标列表。目前,我正在研究如何在$gis中使用GisController中的索引的JavaScript。

这是GisController.php

代码语言:javascript
复制
public function index()
{
    $gis = Gis::all();

    return view('gis/map', compact('gis'));
}

这是来自index.blade.php的

代码语言:javascript
复制
foreach ($gis as $gisData) {
    //------- data from controller
    var gisType = $gisData->type;

    if (gisType == 1) {
        //------- data from controller
        var polylinePoints = $gisData->coordinates;
        var polyline = L.polyline(polylinePoints).addTo(map);
    } else if (gisType == 2) {
        //------- data from controller
        var markerPoint= $gisData->coordinates;
        var marker = L.marker(markerPoint).addTo(map);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-07 10:00:47

有两种方法:

  1. 使用ajax返回对象
  2. set变量到javascript

代码语言:javascript
复制
    <script>
    const gisData = <?php echo json_encode($gis); ?>;
    </script>

注意事项:可以将$gis转换为数组

票数 2
EN

Stack Overflow用户

发布于 2022-04-07 14:12:53

您还可以在Laravel上执行动态ajax。我看到你试图在表示层中使用逻辑,应该尽量远离它。您还可以将其发送到前面已经预先格式化为json的消费:

代码语言:javascript
复制
public function index()
{
    $gis = Gis::all()->toJson();

    return view('gis/map', compact('gis'));
} 

在前面这一点上,您不必进行任何转换,只需在JS中使用json,而不必执行一堆php标记或刀片标记。

然而,在我看来,到目前为止,api才是实现这一目标的途径。因此,当需要数据时,您只需命中端点,就可以在控制器中执行所需的逻辑操作,并将需要的数据发送到前端。我不知道这个Gis模型有多大,但是如果它有大量的数据,你会看到一个巨大的性能冲击不断地带回每一行数据。

示例将使用get()或first()和或限制结果。我在我的一个项目中有一个有100多万条记录的表,如果我要做一个所有的(),服务器会在我身上到处乱叫。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71779867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档