我正在使用Laravel从一个表中获取所有数据,并显示传单的坐标列表。目前,我正在研究如何在$gis中使用GisController中的索引的JavaScript。
这是GisController.php
public function index()
{
$gis = Gis::all();
return view('gis/map', compact('gis'));
}这是来自index.blade.php的
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);
}
}发布于 2022-04-07 10:00:47
有两种方法:
<script>
const gisData = <?php echo json_encode($gis); ?>;
</script>注意事项:可以将$gis转换为数组
发布于 2022-04-07 14:12:53
您还可以在Laravel上执行动态ajax。我看到你试图在表示层中使用逻辑,应该尽量远离它。您还可以将其发送到前面已经预先格式化为json的消费:
public function index()
{
$gis = Gis::all()->toJson();
return view('gis/map', compact('gis'));
} 在前面这一点上,您不必进行任何转换,只需在JS中使用json,而不必执行一堆php标记或刀片标记。
然而,在我看来,到目前为止,api才是实现这一目标的途径。因此,当需要数据时,您只需命中端点,就可以在控制器中执行所需的逻辑操作,并将需要的数据发送到前端。我不知道这个Gis模型有多大,但是如果它有大量的数据,你会看到一个巨大的性能冲击不断地带回每一行数据。
示例将使用get()或first()和或限制结果。我在我的一个项目中有一个有100多万条记录的表,如果我要做一个所有的(),服务器会在我身上到处乱叫。
https://stackoverflow.com/questions/71779867
复制相似问题