我正在使用this包
GeocoderLaravel版本:4.0.0
Laravel版本:5.6
PHP版本:7.2.4
操作系统和版本:Windows 10
FatalThrowableError (E_ERROR)
Call to a member function getStreetNumber() on null
这可能发生1/10次。即使我使用相同的坐标。其余时间它工作正常。如果我收到错误,只需刷新/重新提交表单即可。所以不确定如何解决这个问题。
我的一个猜测是,在将对象返回Location::create()
之前,它会消除$geo
,但我不知道如何解决这个问题。任何帮助将不胜感激
这是我的控制器:
$lat = request('lat');
$lng = request('lng');
$geo = Geocoder::reverse($lat, $lng)->get()->first();
$location = Location::create([
'lat' => $lat,
'lng' => $lng,
'user_id' => Auth::user()->id,
'streetNumber' => $geo->getStreetNumber(),
'streetName' => $geo->getStreetName(),
'cityDistrict' => $geo->getSubLocality(),
'city' => $geo->getLocality(),
'zipcode' => $geo->getPostalCode(),
'country' => $geo->getCountry(),
'timezone' => $geo->getTimezone()
]);