edeoliv/laravel-countries-states-cities

Laravel Countries States Cities 数据库迁移与填充器

v1.0.2 2024-07-09 04:15 UTC

This package is auto-updated.

Last update: 2024-09-13 09:50:57 UTC


README

Laravel 的国家、州、城市数据

数量

属性

常用属性

  • name: 国家通用名称(英语)。
  • iso2: ISO-3166-2 代码。
  • iso2: ISO-3166-3 代码。
  • numeric_code: 国家数字代码。
  • phonecode: 国家电话区号。
  • capital: 该国家的首都。
  • currency: ISO-4177 货币代码,例如 USD、CNY。
  • currency_name: 货币名称。
  • currency_symbol: 货币符号,例如 $, ¥。
  • tld: 国家顶级域名,例如 .uk。
  • native: 国家的本地名称。
  • region: 国家的地区。
  • subregion: 国家的子地区。
  • timezones: 国家的时区。
    • zoneName: 时区名称,例如 America/New_York。
    • gmtOffset: GMT 偏移量,例如 -18000。
    • gmtOffsetName: GMT 偏移量名称,例如 UTC-05:00。
    • abbreviation: 缩写,例如 EST。
    • tzName: 时区名称,例如 Eastern Standard Time (North America)。
  • translations: 国家名称翻译,例如。
    • "ar": "美利坚合众国"
    • "kr": "美国"
    • "fr": "美利坚合众国"
  • latitude: 国家的纬度。
  • longitude: 国家的经度。
  • emoji: 国家的表情符号国旗,例如 🇺🇸。
  • emojiU: 国家的表情符号 Unicode 国旗,例如 U+1F1FA U+1F1F8。
  • flag: 国家是否有国旗(布尔值)。
  • is_active: 国家是否有激活状态(布尔值)。

安装

您可以通过 composer 安装此包。

composer require edeoliv/laravel-countries-states-cities

使用方法

现在运行以下命令进行安装。

php artisan countries-states-cities:install

database\seeders\DatabaseSeeder.php 中添加 seeder 文件,使用 php artisan db:seed 命令。

public function run(): void
    {
    
        $this->call(CountriesStatesCitiesTableSeeder::class);
        ...
    }

或者,您可以通过运行此命令来填充国家、州、城市的数据。

php artisan countries-states-cities:seeder

并且,您可以通过运行此命令来重新填充国家、州、城市的数据。

php artisan countries-states-cities:seeder --refresh

您可以在配置文件中通过国家代码 ISO2 或 ISO3 指定国家的激活状态。 config/countries-states-cities.php

return [
    'countries' => [
        'activation' => [
            'default' => true,
            'only' => [
                'iso2' => ['SA','GB','DE'],
                'iso3' => ['USA','BRA','EGY'],
            ],
            'except' => [
                'iso2' => ['GA'],
                'iso3' => ['HTI'],
            ],
        ],
        'chunk_length' => 50,
    ],

    'states' => [
        'activation' => [
            'default' => true,
        ],
        'chunk_length' => 200,
    ],

    'cities' => [
        'activation' => [
            'default' => true,
        ],
        'chunk_length' => 200,
    ],
];

这意味着只有这两个国家及其相关的州和城市将激活。

  • 注意:如果激活只设置了 iso2iso3,则列 is_active 采用配置文件中的 default 值。
  • 注意:如果国家处于激活状态,所有州和城市也将激活。
  • 注意:如果激活除了 iso2iso3 之外的内容,则列 is_active 采用 FALSE 值。
  • 注意:如果国家未激活,所有州和城市也将未激活。

使用方法

您可以通过 iso2 和 iso3 或两者来获取国家。

如果您想通过 iso2 获取国家,可以使用静态函数 getByIso2。

use App\Models\Country;

$sa = Country::getByIso2('SA');
$sa->name; // Saudi Arabia
$sa->iso2; // SA
$sa->iso3; // SAU
$sa->currency_symbol; // ﷼
$sa->native; // المملكة العربية السعودية

如果您想通过 iso3 获取国家,可以使用。

use App\Models\Country;

$bra = Country::getByIso3('BRA');
$bra->name; // Brazil
$bra->iso2; // BR
$bra->iso3; // BRA
$bra->currency_symbol; // R$
$bra->native; // Brasil

此外,如果您想通过 iso2 或 iso3 获取国家,可以使用。

use App\Models\Country;

$bra = Country::getByCode('PT');
$bra->name; // Portugal
$bra->iso2; // PT
$bra->iso3; // PRT
$bra->currency_symbol; // €
$bra->native; // Portugal

范围

您可以使用范围通过使用来过滤激活的数据。

use App\Models\Country;

$countries = Country::active()->pluck('name','id');

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件