coolsam/laravel-mongodb-world

使用 jenssegers/laravel-mongodb 为 Laravel 提供基于 mongodb 的国家、州和城市关系数据库

v1.0.1 2018-07-23 13:40 UTC

This package is auto-updated.

Last update: 2024-08-26 17:36:10 UTC


README

本软件包专注于使用 Jenssegers 的 Laravel-MongoDB 包为 Laravel 提供支持地区设置的全球国家、地区和城市数据库。

概念

本软件包中有 5 个主要对象。

  • World:地球。
  • Continent:7 大洲
  • Country:247 个国家
  • Division:如州/省之类的行政区域。
  • City:地区级别的最后一层,一些城市直属于国家,一些直属于行政区域。

属性

常用属性

  • name:地区通用名称。
  • full_name:全称或官方名称
  • code:ISO-3166-1-alpha2/ISO-3166-2 代码
  • local_name:通用名称的翻译
  • local_full_name:全称的翻译
  • local_alias:不同语言的别名
  • local_abbr:缩写

国家特定属性

  • emoji:国家的表情符号旗帜
  • capital:该国的首都
  • code_alpha3:ISO-3166-1-alpha3 代码
  • currency_code:ISO-4177 货币代码,例如 USD、CNY
  • currency_name:ISO-4177 货币名称
  • local_currency_name:地区货币名称

示例

use Coolsam\World\World;
$china = World::getByCode('cn');
$china->setLocale('zh-cn');
$china->name; // China
$china->local_name; // 中国
$china->full_name; // People's Republic of China
$china->local_full_name; // 中华人民共和国
$china->emoji; // 🇨🇳
$china->callingcode; // 86
$china->code; // CN
$china->code_alpha3; // CHN
$china->has_division; // true
$china->currency_code; // CNY
$china->currency_name; // Yuan Renminbi
$china->local_currency_name; // 人民币

本地化

目前,仅支持英语(默认和回退)和中文简体 zh-cn。地区设置遵循 Laravel 项目的设置在 config/app.php

##依赖

设置

  • composer require
composer require coolsam/laravel-mongodb-world
  • 将服务提供者添加到 config/app.php
'providers' => [
    // ...
    Coolsam\World\WorldServiceProvider::class,
]
  • 发布和初始化
php artisan vendor:publish --force --provider="Coolsam\World\WorldServiceProvider"
composer dump-autoload
php artisan world:init

使用

  • 获取所有大洲
use Coolsam\World\World;

World::Continents()
  • 获取所有国家
use Coolsam\World\World;

World::Countries()
  • 按代码获取国家
use Coolsam\World\World;

Country::getByCode('cn');
  • 获取属于某个大洲的国家
use Coolsam\World\Models\Continent;

$asia = Continent::getByCode('AS');
$countries = $asia->countries()->get();
// or use children method
$countries = $asia->children();
  • 获取大洲或父级
$china = Country::getByCode('cn');
$asia = $china->parent();
  • 通过国家获取州/省/省份
$china = Country::getByCode('cn');
$provinces = $china->divisions()->get()
// or use children method
$provinces = $china->children();
  • 通过国家或行政区域获取城市
$china = Country::getByCode('cn');
// check has_division to determine next level is division or city.
$china->has_division; // true, otherwise is false
$regsions = $china->children();

关于

本软件包采用 MIT 许可证发布。如果您有任何疑问或建议,请随时提交问题或给我发邮件 Sam Maosa<maosa.sam(AT)gmail.com>。

祝您成为真正的大数据工匠。