如何在php中从对象获取国家代码?

如何在php中从对象获取国家代码?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我是php/laravel的初学者 我有一个对象数组 这是示例对象: Geocoder\Provider\Nominatim\Model\NominatimAddress Object ( [attribution:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright

我是php/laravel的初学者

我有一个对象数组

这是示例对象:

Geocoder\Provider\Nominatim\Model\NominatimAddress Object
(
    [attribution:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright
    [category:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => boundary
    [displayName:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => Rumo, Comunità della Val di Non, TN, TAA, Italia
    [osmType:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => relation
    [osmId:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => 47201
    [type:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => administrative
    [coordinates:Geocoder\Model\Address:private] => Geocoder\Model\Coordinates Object
        (
            [latitude:Geocoder\Model\Coordinates:private] => 46.4610571
            [longitude:Geocoder\Model\Coordinates:private] => 10.9882457
        )

    [bounds:Geocoder\Model\Address:private] => Geocoder\Model\Bounds Object
        (
            [south:Geocoder\Model\Bounds:private] => 46.4218546
            [west:Geocoder\Model\Bounds:private] => 10.9308997
            [north:Geocoder\Model\Bounds:private] => 46.4840451
            [east:Geocoder\Model\Bounds:private] => 11.0481174
        )

    [streetNumber:Geocoder\Model\Address:private] => 
    [streetName:Geocoder\Model\Address:private] => 
    [subLocality:Geocoder\Model\Address:private] => 
    [locality:Geocoder\Model\Address:private] => Rumo
    [postalCode:Geocoder\Model\Address:private] => 
    [adminLevels:Geocoder\Model\Address:private] => Geocoder\Model\AdminLevelCollection Object
        (
            [adminLevels:Geocoder\Model\AdminLevelCollection:private] => Array
                (
                    [1] => Geocoder\Model\AdminLevel Object
                        (
                            [level:Geocoder\Model\AdminLevel:private] => 1
                            [name:Geocoder\Model\AdminLevel:private] => TAA
                            [code:Geocoder\Model\AdminLevel:private] => 
                        )

                    [2] => Geocoder\Model\AdminLevel Object
                        (
                            [level:Geocoder\Model\AdminLevel:private] => 2
                            [name:Geocoder\Model\AdminLevel:private] => Comunità della Val di Non
                            [code:Geocoder\Model\AdminLevel:private] => 
                        )

                )

        )

    [country:Geocoder\Model\Address:private] => Geocoder\Model\Country Object
        (
            [name:Geocoder\Model\Country:private] => Italia
            [code:Geocoder\Model\Country:private] => IT
        )

    [timezone:Geocoder\Model\Address:private] => 
    [providedBy:Geocoder\Model\Address:private] => nominatim
)
我的php代码:

foreach (app('geocoder')->geocode($request->input('city'))->get() as $key => $value) {
            //echo $value->country->code;
            echo"<pre>"; print_r($value); echo"</pre>";
        }


我该怎么做?

要使用
Geocoder
获取国家代码,请使用
StringFormatter

$formatter=new\Geocoder\formatter\StringFormatter();
$countryCode=$formatter->format($location,'%c');
中列出了其他有用的格式

  • 街道号码:%n
  • 街道名称:%S
  • 城市(地区):%L
  • 市区(次区域):%D
  • 邮政编码:%z
  • 管理员级别名称:%A1、%A2、%A3、%A4、%A5
  • 管理员级别代码:%a1、%a2、%a3、%a4、%a5
  • 国家:%C
  • 国家代码:%c
  • 时区:%T

Sooo。。。。什么是
print\r
输出?因为它看起来像,如果。。。else条件,您基本上在那里?返回错误:传递给Geocoder\Formatter\StringFormatter::format()的参数1必须实现接口Geocoder\Location,给定的Illumb\Support\Collection实例,在934行的/var/www/appname/app/Http/Controllers/FrontendController.php中调用,您将哪个变量设置为
$location
?我有以下代码:$res=app('geocoder')->geocode($request->input('city')->get()$formatter=new\Geocoder\formatter\StringFormatter()$countryCode=$formatter->format($res,%c')@GOSLSC给它一个单一的结果
foreach(…作为$value){$formatter->format($value,'%c');
It's correct
It's correct
It's correct
wrong
It's correct