Как вызвать переменную PHP из JavaScript в laravel?

Я пытаюсь передать долготу и широту службы для скрипта, который генерирует карты Google. Это мой код:

лопасть

<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false"> </script> <script> function initialize() { var mapOptions = { scaleControl: true, center: new google.maps.LatLng({{$servicio->Longitud}}}, {{$servicio->Latitud}}}, zoom:18 }; var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); var marker = new google.maps.Marker({ map: map, position: map.getCenter() }); var infowindow = new google.maps.InfoWindow(); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map, marker); }); } google.maps.event.addDomListener(window, 'load', initialize); </script> <div class="perfiles"> <legend>Detalle de servicio</legend> <table class="table"> <tr><td>Numero de Orden</td><td>{{$servicio->idServicio}}</td></tr> <tr><td>Cliente</td><td>{{$servicio->Cliente}}</td></tr> <tr><td>Fecha Inicio</td><td>{{$servicio->Hora_Inicio}}</td></tr> </table> @if($servicio->Completado) <div id="map-canvas" style="width:650px;height:300px;"></div> <table> <tr><td>{{HTML::image($servicio->RutaFoto1, '', array('width' => '300', 'height' => '300'))}}</td><td>{{HTML::image($servicio->RutaFoto2, '', array('width' => '300', 'height' => '300'))}}</td></tr> <tr><td>{{HTML::image($servicio->RutaFoto3, '', array('width' => '300', 'height' => '300'))}}</td><td>{{HTML::image($servicio->RutaFoto4, '', array('width' => '300', 'height' => '300'))}}</td></tr> </table> @endif 

контроллер

 public function doDetail($id){ $servicio = Servicio::find($id); return View::make('detalleservicio', array('servicio' => $servicio)); } 

Проблема в том, что скрипт не распознает код laravel или php. Как я могу это исправить?

Здесь у вас есть три}}} после Longitud и Latitud. Я считаю, что Longitud должен быть}}, а Latitud должен быть}})

 center: new google.maps.LatLng({{$servicio->Longitud}}}, {{$servicio->Latitud}}}, 

должно быть:

 center: new google.maps.LatLng({{$servicio->Longitud}}, {{$servicio->Latitud}}), 

Вы должны либо использовать двойные фигурные скобки {{ и }} либо тройные фигурные скобки {{{ и }}} . Вы не должны смешивать его с другим.

Вместо

 center: new google.maps.LatLng({{$servicio->Longitud}}}, {{$servicio->Latitud}}}, 

ты должен сделать

 center: new google.maps.LatLng({{$servicio->Longitud}}, {{$servicio->Latitud}}, 

Если вы хотите использовать {{{ три фигурные скобки }}} вместо {{ two }} то ваш выход будет экранирован, угловые скобки будут преобразованы в объекты HTML.

Подробнее об эхо-данных можно прочитать с помощью Blade templating engine здесь: http://laravel.com/docs/templates#other-blade-control-structures