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)。请参阅许可证文件以获取更多信息。