altwaireb / laravel-world
Laravel World, 国家、州、城市数据库迁移与填充器
v1.0.0
2024-06-24 03:47 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
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": "États-Unis"
latitude
: 国家的纬度。longitude
: 国家的经度。emoji
: 国家的emoji国旗,例如🇺🇸。emojiU
: 国家的emoji Unicode国旗,例如U+1F1FA U+1F1F8。flag
: 国家是否有国旗(布尔值)。is_active
: 国家是否激活(布尔值)。
安装
您可以通过composer安装此包。
composer require altwaireb/laravel-world
用法
现在运行以下命令进行安装。
php artisan world:install
在database\seeders\DatabaseSeeder.php
中添加seeder文件,使用php artisan db:seed
命令。
public function run(): void { $this->call(WorldTableSeeder::class); ... }
或者,您可以通过运行此命令来填充国家、州、城市的数据库数据。
php artisan world:seeder
您可以通过运行此命令刷新并重新填充国家、州、城市的数据库数据。
php artisan world:seeder --refresh
您可以在处理填充数据之前的配置文件config/world.php
中通过国家代码ISO2或ISO3或两者来指定国家的激活状态。
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获取国家,可以使用yes静态函数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
作用域
您可以使用Scope通过使用来过滤数据是否激活。
use App\Models\Country; $countries = Country::active()->pluck('name','id');
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。