2017-02-09 3 views
0

Как можно правильно преобразовать lat и long в строку и сохранить ее в db mysql? Любая помощь очень ценится.Сохранить широту и долготу после преобразования в строку в Laravel

<?php namespace App\Http\Controllers; 
     public function addLocation(Request $request){ 
      $address = NGO::all(); 
      $address->lat = $request['lat']; 
      $address->lng = $request['lng']; 
      $lat = $address->lat; 
      $lng = $address->lng; 
      $address = getaddress($lat,$lng); 
      $address->save(); 

      return view('pages.Ngo.Add-New-Ngo-Scholar'); 
    } 

    public function getaddress($lat,$lng) 
    { 
    $url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false'; 
    $json = @file_get_contents($url); 
    $data=json_decode($json); 
    $status = $data->status; 
    if($status=="OK") 
    return $data->results[0]->formatted_address; 
    else 
    return false; 
    } 

ответ

0

Вы можете указать Laravel, чтобы всегда относить определенный атрибут к строке (или массиву и т. Д.). Вы даже можете бросить в JSON (в БД будет json_encoded ен сохранены как струна) ...

Для этого использования в модели:

protected $casts = [ 
     'attribute_name' => 'string' 
    ]; 
+0

Ok I'l попробовать это первое. – Chee

+0

Sir, Ok Как объединить lat и long в моей модели. Как 'lat' => 'string' и 'long' => 'string'.It следует сохранить в одном столбце таблицы? – Chee

+0

Сохранение их в одной колонке? Это зависит от вас и полностью зависит от вашей цели. Ваш вопрос состоял в том, как я могу сохранить что-то в базе данных как строку ... :-) Но если вы хотите, чтобы это было в двух столбцах и отлито для строк: protected $ casts = [ 'lat' => 'string ', ' long '=>' string ', ]; – jeroenF