Laravel 在传单中从数据库加载标记
在Laravel的view blade中,我从数据库中提取数据并制作了一个表Laravel 在传单中从数据库加载标记,laravel,leaflet,maps,laravel-blade,Laravel,Leaflet,Maps,Laravel Blade,在Laravel的view blade中,我从数据库中提取数据并制作了一个表 <table id="companies" class="table table-bordered"> <thead> <tr> <th>Companies</th> <th>Devices</th>
<table id="companies" class="table table-bordered">
<thead>
<tr>
<th>Companies</th>
<th>Devices</th>
<th>X</th>
<th>Y</th>
<th>Time</th>
<th>Vehicles</th>
<th>Drivers</th>
</tr>
</thead>
</p>
<tbody>
@foreach ($satwork as $row)
<tr>
<td>{{ $row -> company_name}}</td>
<td>{{ $row -> device_type}}</td>
<td>{{ $row -> x}}</td>
<td>{{ $row -> y}}</td>
<td>{{ $row -> datetime}}</td>
<td>{{ $row -> license_plate}}</td>
<td>{{ $row -> driver_name}}</td>
</tr>
@endforeach
</tbody>
</table>
公司
装置
X
Y
时间
车辆
司机
@foreach($satwork作为$row)
{{$row->company_name}
{{$row->设备类型}
{{$row->x}
{{$row->y}
{{$row->datetime}
{{$row->车牌号}
{{$row->driver_name}
@endforeach
在传单中,我有一段代码,可以通过该表从数据库中提取数据,并将其显示在地图上
var koordinate = {!! json_encode($device->toArray()) !!};
console.log(koordinate);
for (var i=0; i < koordinate.length; i++) {
if(koordinate[i].x && koordinate[i].y){
var marker = L.marker([koordinate[i].x, koordinate[i].y])
.bindPopup("Device: "+koordinate[i].device_type+'<br>' + "Time: "+koordinate[i].time)
.addTo(map);
}
}
var koordinate={!!json_encode($device->toArray())!!};
控制台日志(协调);
对于(变量i=0;i“+”时间:+koordinate[i]。时间)
.addTo(地图);
}
}
我需要一种方法,如何拉所有的数据直接从数据库到传单,而不与查看刀片接触。这可能吗 要做到这一点,您可以使用javascript HTTP请求来创建一个返回所有数据的API 您可以使用Laravel的内置API功能,并在
routes/API.php
中创建一个新路由,返回所有数据,请注意,通过这种方式,其他人也可以获取此数据,这意味着您必须确保以某种方式保护您的数据
因为我总是在项目中使用JQuery,所以我使用JQuerygetJSON()
方法获取所有数据,然后使用javascript显示数据
也许像这样的办法行得通?(我还没有测试过这个):
var-mapboxTiles=L.tillelayer('https://{s}.tiles.mapbox.com/v3/examples.map-i87786ca/{z}/{x}/{y}.png'{
属性:“”
});
var map=L.map('map'))
.addLayer(mapboxTiles)
.setView([42.444508,-76.499491],12);
//这是新的
var promise=$.getJSON(“businesss.json”);
promise.then(函数(数据){
data.forEach(koordinate=>{
if(坐标[i].x&&k坐标[i].y){
var marker=L.marker([koordinate[i].x,koordinate[i].y])
.bindpoop(“设备:+koordinate[i]。设备类型+”
“+”时间:+koordinate[i]。时间)。addTo(映射);
}
})
});
源于我以前使用过json,我可以从controller创建吗?在
路由/api.php
中,您可以创建一个新路由,就像在路由/web.php
中一样,它返回一个响应。但是,您可以返回类似于return Koordinate::all()
,其中Koordinate是您的模型类名,而不是返回视图。这将被转换成JSON格式。我找到了一些教程,在那里我必须制作参考资料。但我会尝试这两个例子
var mapboxTiles = L.tileLayer('https://{s}.tiles.mapbox.com/v3/examples.map-i87786ca/{z}/{x}/{y}.png', {
attribution: '<a href="http://www.mapbox.com/about/maps/" target="_blank">Terms & Feedback</a>'
});
var map = L.map('map')
.addLayer(mapboxTiles)
.setView([42.444508, -76.499491], 12);
// THIS IS NEW
var promise = $.getJSON("businesses.json");
promise.then(function(data) {
data.forEach(koordinate => {
if(koordinate[i].x && koordinate[i].y){
var marker = L.marker([koordinate[i].x, koordinate[i].y])
.bindPopup("Device: "+koordinate[i].device_type+'<br>' + "Time: "+koordinate[i].time).addTo(map);
}
})
});