Laravel - Попытка показать Google Map на основе идентификатора пользователя - PullRequest
0 голосов
/ 08 июля 2019

В моем клинке мне нужно показать местоположение пользователя на карте. Я использую одну и ту же функцию JS в другом блейде. В моем другом блейде (профиле) карта работает нормально, но здесь она входит в .fail ()

UserController:

public function getMap(){
        $user = User::user();
        return json_encode($user);
    }

Лезвие:

<div id="address-map-container" class="form-group row" style="width:100%;height:400px; ">
        <div style="width: 100%; height: 100%" id="map">
        </div>
    </div>
@endsection

@section('scripts')

 <script async defer src="https://maps.googleapis.com/maps/api/js?key=[MY_KEY]&libraries=places"></script>

    <script src="/js/circles.js"></script>
    <script>
    var site_url = window.location.pathname;
    var id = site_url.substring(site_url.lastIndexOf('/'));
    $(() =>{
        circleInitialize('getMap'+id)

    })
</script>
 @endsection

circles.js:

$.ajaxSetup({
  headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  }
})
function circleInitialize(url) {
  $.ajax({
    dataType: "json",
    url: url,
    type: 'GET',
  })
    .done((data) => {
      var distance = data.distance*1000;
      var latitude = data.address_latitude;
      var longitude = data.address_longitude;
      var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        center: {lat: latitude, lng: longitude},
        mapTypeId: 'roadmap'
      });
      var center = new google.maps.LatLng(latitude, longitude);
      var circle = new google.maps.Circle({
        center: center,
        map: map,
        radius: distance,
        fillColor: '#4CCC60',
        fillOpacity: 0.3,
        strokeColor: "#FFF",
        strokeWeight: 0
      });
    })
    .fail(() => {
      alert("error circle.js")    
    }) 
}

Маршрут:

Route::get('getMap/{id}', 'UserController@getMap');

Я получаю сообщение об ошибке 404 Не найдено

1 Ответ

1 голос
/ 08 июля 2019

Передача идентификатора пользователя контроллеру по маршруту.Поэтому вам нужно добавить параметр $id в вашем методе getMap($id) в вашем контроллере.Тогда вы можете сделать $user = User::find($id)

...