laravel - 为什么在 MenaraSolutions/geographer 插件中我无法获得有关美国首都的信息?
问题描述
在 Laravel 8 中,我使用https://github.com/MenaraSolutions/geographer我需要获得任何国家/地区的资金及其纬度/经度,但我无法通过代码获得它:
$selectedCountry = $earth->getCountries()->setLocale('en')->findOne(['code' => strtoupper($next_country_key)]);
\Log::info( varDump($selectedCountry, ' -1 $selectedCountry::') );
$capital = $selectedCountry->getCapital();
\Log::info( varDump($capital, ' -1 $capital::') );
$countriesArray[] = [
'label' => $next_country_label,
'value' => $next_country_key,
'geonames_code' => $capital->getGeonamesCode(),
'lat' => $capital->getLatitude(),
'lng' => $capital->getLongitude(),
];
我得到错误:
Call to a member function getGeonamesCode() on bool
作为
$selectedCountry->getCapital()
返回错误。
检查 $selectedCountry var 的日志内容,我看到:
[2021-04-09 07:26:49] local.INFO: (Object of MenaraSolutions\Geographer\Country) : -1 $selectedCountry:: : Array
(
[ * memberClass] => MenaraSolutions\Geographer\State
[ * exposed] => Array
(
[code] => ids.iso_3166_1.0
[code3] => ids.iso_3166_1.1
[isoCode] => ids.iso_3166_1.0
[numericCode] => ids.iso_3166_1.2
[geonamesCode] => ids.geonames
[fipsCode] => ids.fips
[0] => area
[1] => currency
[phonePrefix] => phone
[2] => mobileFormat
[3] => landlineFormat
[4] => trunkPrefix
[5] => population
[6] => continent
[language] => languages.0
[7] => name
)
[ * meta] => Array
(
[languages] => Array
(
[0] => en
)
[ids] => Array
(
[iso_3166_1] => Array
(
[0] => US
[1] => USA
[2] => 840
)
[fips] => US
[geonames] => 6252001
)
[long] => Array
(
[default] => United States of America
)
[short] => Array
(
[default] => United States
)
[area] => 9629091
[currency] => USD
[phone] => 1
[trunkPrefix] => 1
[landLineFormat] => [2-9]\d{9}
[mobileFormat] => [2-9]\d{9}
[continent] => NA
[population] => 310232863
)
[ * members] =>
[ * manager] => MenaraSolutions\Geographer\Services\DefaultManager Object
(
[translator:protected] => MenaraSolutions\Geographer\Services\TranslationAgency Object
(
[basePath:protected] => /mnt/_work_sdb8/wwwroot/lar/tAdsBack/vendor/menarasolutions/geographer/resources/
[repository:protected] => MenaraSolutions\Geographer\Repositories\File Object
(
[prefix:protected] => /mnt/_work_sdb8/wwwroot/lar/tAdsBack/vendor/menarasolutions/geographer-data/resources
[translationsPrefix:protected] => /mnt/_work_sdb8/wwwroot/lar/tAdsBack/vendor/menarasolutions
[cache:protected] => Array
(
)
)
[form:protected] => default
[inflictsTo:protected] => Array
(
)
[prepositions:protected] => 1
[languages:protected] => Array
(
[ru] => MenaraSolutions\Geographer\Services\Poliglottas\Russian
[en] => MenaraSolutions\Geographer\Services\Poliglottas\English
[es] => MenaraSolutions\Geographer\Services\Poliglottas\Spanish
[it] => MenaraSolutions\Geographer\Services\Poliglottas\Italian
[fr] => MenaraSolutions\Geographer\Services\Poliglottas\French
[zh] => MenaraSolutions\Geographer\Services\Poliglottas\Mandarin
[uk] => MenaraSolutions\Geographer\Services\Poliglottas\Ukrainian
[de] => MenaraSolutions\Geographer\Services\Poliglottas\German
[nl] => MenaraSolutions\Geographer\Services\Poliglottas\Dutch
)
[translators:protected] => Array
(
)
)
[repository:protected] => MenaraSolutions\Geographer\Repositories\File Object
(
[prefix:protected] => /mnt/_work_sdb8/wwwroot/lar/tAdsBack/vendor/menarasolutions/geographer-data/resources
[translationsPrefix:protected] => /mnt/_work_sdb8/wwwroot/lar/tAdsBack/vendor/menarasolutions
[cache:protected] => Array
(
)
)
[language:protected] => en
[form:protected] =>
[standard:protected] => iso
[brief:protected] => 1
[prepositions:protected] => 1
[path:protected] => /mnt/_work_sdb8/wwwroot/lar/tAdsBack/vendor/menarasolutions/geographer/resources/
)
[ MenaraSolutions\Geographer\Divisible parent] =>
[ * parentCode] => SOL-III
[ * standard] =>
)
这个包没有关于美国首都的信息或我的代码有什么问题吗?我在github页面上关注了文档...
"menarasolutions/geographer": "^0.3.9",
"menarasolutions/geographer-laravel": "^0.2.1",
"laravel/framework": "^8.12",
修改块: 我在 github ( https://github.com/MenaraSolutions/geographer/issues/40 ) 上询问并从该软件包的开发人员那里得到了相当奇怪的反馈:
我在代码中修复了该方法并添加了一个测试,但有人必须对 geographer-data repo 提出拉取请求 - 编辑资源/城市/*.json 文件,将“资本”属性添加到相应的条目,例如:“长” :{“默认”:“莫斯科”},“资本”:真,
我知道拉取请求如何与我的项目一起使用,但在这里我不知道如何修复它......你能看看吗?
谢谢!
解决方案
推荐阅读
- docker - 使用 docker-compose 的 Pycharm 远程解释器无法在调试模式下工作
- security - 如何使用给定的哈希函数和一些参数计算 MAC 的密钥?
- java - 为什么这不会画一个直的矩形?
- python - Python MySQL 错误 1210:执行准备好的语句的参数数量不正确
- javascript - 无法使用通过 ng-if 创建的子范围设置父变量
- sql - SQL - 生成没有列名的 JSON 数组
- angular - ionSlides 未定义
- javascript - Vuex 返回“TypeError:无法读取未定义的属性‘getters’”
- database - 由于雪花中的权限,无法克隆数据库
- regex - 必应搜索链接到 Google 表格中的基础链接