无法在 javascript 中循环浏览 laravel 集合



你好,我正在谷歌地图上工作,我收集了纬度,长格式数据库,通过这些纬度,长我必须创建标记。

拉维尔收藏:

public function getMap()
{
    $map = Map::all();
    return view('view-map',
        compact('map'));
}

JavaScript 代码:

    <script>
var data = {!!$map!!};
var i;
for (i = 0; i < data.length; i++) {

//var lat = {{$map->lat}};
//var lng = {{$map->lng}};
var lat = data[i]->lat;
var lng = data[i]->lng;
 var map = new google.maps.Map(document.getElementById('map-canvas'), {
    center:{
        lat: lat,
        lng: lng
    },
    zoom: 15
 });
  // Marker
  var marker = new google.maps.Marker({
  position:{
    lat: lat,
    lng: lng
  },
  map: map
  });
} // end for
</script>

这是只创建单个标记如何在 javascript 中遍历所有纬度,长,请指导我。

现在,您正在创建新地图,并为每次迭代替换当前地图。尝试只为每次迭代创建标记:

<script>
 var map = new google.maps.Map(document.getElementById('map-canvas'), {
    center:{
        lat: lat,
        lng: lng
    },
    zoom: 15
 });
var data = {!!$map!!};
var i;
for (i = 0; i < data.length; i++) {
  // Marker
  var lat = data[i]->lat;
  var lng = data[i]->lng;
  var marker = new google.maps.Marker({
    position:{
      lat: lat,
      lng: lng
    },
    map: map
  });
} // end for
</script>
嗨,

亲爱的Laravel和JavaScript是两回事。您可以使用多个 aproache。

  1. 您可以使用 ajax 获取标记。
  2. 你可以做var data = <?= var_dump($map) ?>;
  3. 还有一个软件包可用,它只是让开发人员将PHP变量注入javaScript。 "laracasts/utilities": "~2.0"

最新更新