GeoData

提供了基本的地理数据,如国家、地区和城市的 Laravel 5.2 包。「Laravel 5.2 package that provides basic geographical data like Countries, Regions and Cities.」

  • Owner: puikinsh/Unite-Theme
  • Platform: BSD, Linux, Mac, Solaris, Windows
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

GeoData

GeoData 是一个 Laravel 软件包,提供国家,地区和城市等基本地理数据。

安装

Composer

通过Composer(文件 composer.json )拉出此包

{
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "gerardojbaez/geodata": "0.*"
    }
}

在终端内运行此命令:

  composer update

服务提供商

将包添加到config / app.php文件中的应用程序服务提供程序。
<?php

'providers' => [

    [...]

    /**
     * Third Party Service Providers...
     */
    Gerardojbaez\GeoData\GeoDataServiceProvider::class,
]

迁移和 Seeders

使用以下内容发布程序包迁移和 Seeders 程序

php artisan vendor:publish

然后运行迁移:

  php artisan migrate

如果您想要所有国家/地区,请运行:

php artisan db:seed --class AllCountriesSeeder

如果您需要特定国家/地区,请运行:

php artisan db:seed --class Gerardojbaez\\GeoData\\Seeders\\UnitedStatesSeeder
php artisan db:seed --class Gerardojbaez\\GeoData\\Seeders\\PuertoRicoSeeder
[...]

检查下面的可用国家/地区:

可用国家

Countries
Afghanistan
Albania
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Aruba
Australia
Austria
Bahamas
Barbados
Belgium
Belize
Bermuda
Bolivia
Brazil
Canada
Chile
China
Colombia
Costa Rica
Croatia
Cuba
Czech Republic
Denmark
Dominican Republic
Ecuador
El Salvador
Equatorial Guinea
Estonia
Finland
France
Germany
Greece
Greenland
Guatemala
Guyana
Haiti
Honduras
Hong Kong
India
Indonesia
Ireland
Israel
Italy
Ivory Coast
Jamaica
Japan
Latvia
Lebanon
Luxembourg
Malaysia
Mexico
Morocco
Netherlands
Nicaragua
Nigeria
Norway
Pakistan
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Poland
Portugal
Puerto Rico
Romania
Russia
Saint Lucia
San Marino
Singapore
South Africa
Spain
Sri Lanka
Sweden
Switzerland
Thailand
Turkey
United Kingdom
United States
Uruguay
Venezuela

Traits 和 Contracts

当您需要定义与国家,地区和/或城市的关系时,您可以使用 GeoData traits。

请参阅以下示例:

<?php

namespace App\Models;

// [...]
use Gerardojbaez\GeoData\Contracts\HasCountryContract;
use Gerardojbaez\GeoData\Contracts\HasRegionContract;
use Gerardojbaez\GeoData\Contracts\HasCityContract;
use Gerardojbaez\GeoData\Traits\HasCountry;
use Gerardojbaez\GeoData\Traits\HasRegion;
use Gerardojbaez\GeoData\Traits\HasCity;

class User extends Model implements HasCountryContract, HasRegionContract, HasCityContract
{
    use HasCountry, HasRegion, HasCity;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'country_code',
        'region_id',
        'city_id',
        ...
    ];

用法

安装国家/地区

除了使用 seeders 通过命令行安装国家/地区外,您还可以通过 CountryInstaller 类安装国家/地区。这将帮助您创建一个“Web 界面”,使您的客户或用户能够根据需要安装国家/地区。安装程序将检查该国家是否已经安装,在这种情况下将抛出 Gerardojbaez\Geodata\Exceptions\CountryAlreadyInstalledException。

安装包括:

  • 国家
  • 国家/地区区域
  • 国家城市

这很简单:

<?php

use Gerardojbaez\Geodata\CountryInstaller;

// Install United States.
$installer = new CountryInstaller('United States');
$installer->install();

// Install Puerto Rico.
$installer = new CountryInstaller('Puerto Rico');
$installer->install();

// Install Spain
$installer = new CountryInstaller('Spain');
$installer->install();

模型

此软件包附带 Gerardojbaez\GeoData\Models\Country、Gerardojbaez\GeoData\Models\Region 和 Gerardojbaez\GeoData\Models\City 模型。

查看每个模型以获取更多详细信息。

控制器

如果您想向您的前端提供您可能想要使用的国家,地区和/或城市数据,请使用 Gerardojbaez\GeoData\Controllers\CountriesController, Gerardojbaez\GeoData\Controllers\RegionsController 和 Gerardojbaez\GeoData\Controllers\CitiesController controllers。

控制器返回包含(如果有)所请求数据的 json 响应。

路线

这是一个例子。您可以根据需要构建这些路径。

<?php

// Show countries list.
Route::get('api/geo/countries', [
    'uses' => '\Gerardojbaez\GeoData\Controllers\CountriesController@countries',
    'as' => 'geodata.countries'
]);

// Show regions list.
Route::get('api/geo/{country}/regions', [
    'uses' => '\Gerardojbaez\GeoData\Controllers\RegionsController@regions',
    'as' => 'geodata.regions'
]);

// Show cities list.
Route::get('api/geo/{country}/{region}/cities', [
    'uses' => '\Gerardojbaez\GeoData\Controllers\CitiesController@cities',
    'as' => 'geodata.cities'
]);

许可证

此软件包是根据 MIT 许可条款分发的免费软件。

Main metrics

Overview
Name With Ownerpuikinsh/Unite-Theme
Primary LanguagePHP
Program languagePHP (Language Count: 3)
PlatformBSD, Linux, Mac, Solaris, Windows
License:MIT License
所有者活动
Created At2014-02-05 19:41:45
Pushed At2021-05-19 12:19:36
Last Commit At2021-05-19 15:19:36
Release Count0
用户参与
Stargazers Count116
Watchers Count28
Fork Count86
Commits Count91
Has Issues Enabled
Issues Count36
Issue Open Count9
Pull Requests Count11
Pull Requests Open Count0
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

GeoData

GeoData is a Laravel package that provides basic geographical data like Countries, Regions and Cities.

Content

Installation

Composer

Pull this package through Composer (file composer.json)

{
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "gerardojbaez/geodata": "0.*"
    }
}

Run this command inside your terminal.

composer update

Service Provider

Add the package to your application service providers in config/app.php file.

<?php

'providers' => [

	[...]

	/**
	 * Third Party Service Providers...
	 */
	Gerardojbaez\GeoData\GeoDataServiceProvider::class,
]

Migrations and Seeders

Publish package migrations and seeders with:

php artisan vendor:publish

Then run migrations.

php artisan migrate

If you want all countries, run:

php artisan db:seed --class AllCountriesSeeder

If you want specific countries, run:

php artisan db:seed --class Gerardojbaez\\GeoData\\Seeders\\UnitedStatesSeeder
php artisan db:seed --class Gerardojbaez\\GeoData\\Seeders\\PuertoRicoSeeder
[...]

Check available countries below.

Available Countries