簡體   English   中英

Laravel 5.4從數據庫獲取JSON

[英]Laravel 5.4 fetch from database for json

我只是想問一下,因為laravel 5.4刪除了fetch方法...什么是我可以用於我的代碼的最佳替代方法。 這是我的代碼:

@php

    $someArray = array();

//循環查詢並將結果推入$ someArray;

    while ($row = $query->fetch_assoc()) {
        array_push($someArray, array(
       'title' => $row['school_name'],
       'lat' => $row['latitude'],
       'lng' => $row['longitude'],
       'description' => $row['enrollment_sy_2014_2015']
        ));

    }

    // Convert the Array to a JSON String and echo it
    $someJSON = json_encode($someArray);
    echo $someJSON;

   @endphp

因為我需要“ title”,“ lat”,“ lng”和“ description”作為我的地圖的變量。這是我的地圖的代碼:我希望任何人都可以提供幫助:))

function LoadMap() {
    var mapOptions = {
        center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
        zoom: 10,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);

    //Create and open InfoWindow.
    var infoWindow = new google.maps.InfoWindow();

    for (var i = 0; i < markers.length; i++) {
        var data = markers[i];
        var myLatlng = new google.maps.LatLng(data.lat, data.lng);
        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map,
            title: data.title
        });

        //Attach click event to the marker.
        (function (marker, data) {
            google.maps.event.addListener(marker, "click", function (e) {
                //Wrap the content inside an HTML DIV in order to set height and width of InfoWindow.
                infoWindow.setContent("<div style = 'width:200px;min-height:40px'>" + data.description + "</div>");
                infoWindow.open(map, marker);
            });
        })(marker, data);
    }
}

如果您使用的是Eloquent,Laravel會在您的集合和模型上提供toJson()方法。

https://laravel.com/docs/5.4/eloquent-serialization#serializing-to-json

您還可以使用json()方法轉換響應。

在您的情況下,可能是這樣的:

    foreach($collection as $item) {
        $data[] = [
            'title' => $item->school_name,
            'lat' => $item->latitude,
            'lng' => $item->longitude,
            'description' => $item->enrollment_sy_2014_2015
        ];
    }
    return response()->json($data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM