Javascript函数Laravel中的Php$var



我将php$var从控制器传递到Javascript中$var已从数据库中提取地址。我把它放在Javascript中。现在我可以在控制台中看到地址了。没问题,我不知道为什么语法错误也会出现。

这就是我将它插入JS的方式。

function initMap(){
var options = {
zoom:8,
center:
'{!! $estates[0]->address !!}'
}
var map = new google.maps.Map(document.getElementById("map"), options);
var marker = new google.maps.Marker({
position:
@foreach($estates as $addr)
'{!! $addr->address !!}',
@endforeach
map:map
});
var infoWindow = new google.maps.InfoWindow({
content:'content here'
});
marker.addListener('click', function () {
infoWindow.open(map, marker);
});
}

我的foreach运行没有问题,我可以在控制台中看到地址,但也可以在这一行看到:'{!! $estates[0]->address !!}'错误也会弹出。实际上我看到的是地址而不是这行。

错误是:

未捕获的SyntaxError:无效或意外的令牌

你知道吗?我是不是犯了语法错误。但如果这样做了,我该如何在控制台检索地址?

在同一行也有这个错误:

未定义变量:庄园(视图:/var/www/html/laravel/resources/views/layouts/appblade.php((视图:/var/www/html/laravel/resources/views/layouts/appblade.php(

控制器

public function index()
{
$estates = DB::table("allestates")
->get();
return view("home", compact('estates'));
}

重复的主题不同。这不是纯粹的JS,我正在与Laravel合作。

我认为其中一个地址包含'字符。为了避免这种情况,请使用addslashes函数。你可以在控制器中这样做:

public function index()
{
$estates = DB::table("allestates")->get()->map(function($estate) {
$estate->address = addslashes($estate->address);
return $estate;
});
return view("home", compact('estates'));
}

根据js:

var options = {
zoom:8,
center: new google.maps.LatLng({{$estates[0]->lat}}, {{$estates[0]->long}});
}

因为你有多个地址,这意味着你也会有多个标记。话虽如此,你的代码应该看起来像:

function initMap(){
var options = {
zoom:8,
center: new google.maps.LatLng({{$estates[0]->lat}}, {{$estates[0]->long}});
}
var map = new google.maps.Map(document.getElementById("map"), options);
var infoWindow = new google.maps.InfoWindow({
content:'content here'
});
var markers = [];
@foreach ($estates as $key => $estate)
markers[{{$key}}] = new google.maps.Marker({
position:  new google.maps.LatLng({{$estate->lat}}, {{$estate->long}});
map: map
});
markers[{{$key}}].addListener('click', function () {
infoWindow.open(map, markers[{{$key}}]);
});
@endforeach
}

您可以将laravel刀片文件中的php变量用作

var选项={缩放:8,中心:"{{$estates[0]->地址}}"}

最新更新