Obtuve estos datos de la solicitud en Laravel
{"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"longitude":153.0696076}pero no puedo acceder a las claves individualmente, es decir, valor, latitud, longitud. He intentado json_decode pero eso no funciona.
Este es mi método de controlador
public function saveLocation(Request $request){ $location = $request->all(); Location::create(['address'=>$location->value,'long'=>$location->longitude,'lat'=>$location->latitude]); }Básicamente, quiero guardar los datos de ubicación de la solicitud a la base de datos. en el objeto $ubicación obtuve datos que pegué en la parte superior
No sé qué está mal con json_decode simple, pero resolví mi problema usando json_decode dentro del ciclo foreach y luego accediendo a los valores del par de claves
foreach (json_decode($location) as $key => $value) { if($key=="value") $obj['address'] = $value; else $obj[$key] = $value; } Location::create($obj);La decodificación de Json funciona correctamente para el json mencionado. Si $location devuelve el json mencionado, entonces
$data='{"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"longitude":153.0696076}'; dd(json_decode($data)->latitude);así debería ser
public function saveLocation(Request $request){ $location = json_decode($request->all()); Location::create(['address'=>$location->value,'long'=>$location->longitude,'lat'=>$location->latitude]); }