I have a Laravel project that works with Google maps. I have a User Model that contains these two fields: lat, long. I want to make a Marker for each user, with an InfoWindow.
Here is my code:
web.php:
Route::get('/',function (){
$users = \App\User::all() ;
return view('map',compact(['users']));
}) ;
map.blade.php:
<script>
var map ;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -23, lng: 150.644},
zoom: 8
});
@forEach($users as $user)
var lat = parseFloat({{$user->lat}});
var lng = parseFloat({{$user->long}});
var content = "{{$user->name}}" ;
var infoWindow = new google.maps.InfoWindow(
{
content:content
}
);
var urlurl = {lat:lat,lng:lng} ;
var marker = new google.maps.Marker(
{
position:urlurl ,
map:map
}
) ;
marker.addListener('click',function () {
infoWindow.open(map,marker);
});
@endforeach
}
</script>
But when I run this, it just shows me the last user's inserted marker.
How can I make exactly one marker for each user?