edeoliv / laravel-countries-states-cities
Laravel Countries States Cities 数据库迁移与填充器
v1.0.2
2024-07-09 04:15 UTC
Requires
- php: ^8.3
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
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, ], ];
这意味着只有这两个国家及其相关的州和城市将激活。
- 注意:如果激活只设置了
iso2
和iso3
,则列is_active
采用配置文件中的default
值。 - 注意:如果国家处于激活状态,所有州和城市也将激活。
- 注意:如果激活除了
iso2
或iso3
之外的内容,则列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)。有关更多信息,请参阅许可证文件。