LaravelPackages.net
Acme Inc.
Toggle sidebar
pixxet/laravel-geoip-world-cities

Laravel GeoIP World Cities provides MaxMind Free World Cities Database for laravel applications.

145
0
2.3.1
About pixxet/laravel-geoip-world-cities

pixxet/laravel-geoip-world-cities is a Laravel package for laravel geoip world cities provides maxmind free world cities database for laravel applications.. It currently has 0 GitHub stars and 145 downloads on Packagist (latest version 2.3.1). Install it with composer require pixxet/laravel-geoip-world-cities. Discover more Laravel packages by pixxet or browse all Laravel packages to compare alternatives.

Last updated

laravel-geoip-world-cities (Laravel 5)

Latest Version on Packagist Latest Unstable Version Software License Total Downloads

Laravel GeoIP World Cities is package that provides MaxMind Free World Cities Database support for laravel applications.

Contents

Introduction

Includes city, region, country, latitude and longitude. This database doesn't contain any IP addresses. It's simply a listing of all the cities in the world.

This package simply loads the data provided in worldcitiespop.txt.gz file by MaxMind into a database and provides a City model to query the table.

Before installing

If you are looking for the Laravel 4 version, take a look Branch 1.0.

Installation

Note: This package is a bit large, ~40MB, installing and seeding the data could take a while.

Add pixxet/laravel-geoip-world-cities to composer.json:

"pixxet/laravel-geoip-world-cities": "2.*"

for the last stable version, or

"pixxet/laravel-geoip-world-cities": "dev-master"

for the latest version.

Run composer update to pull down laravel-geoip-world-cities.

Edit config/app.php and add the provider

    'providers' => [
        Pixxet\LaravelGeoIPWorldCities\LaravelGeoIPWorldCitiesServiceProvider::class,
    ]

Optionally add the alias.

    'aliases' => [
        'Cities' => Pixxet\LaravelGeoIPWorldCities\Facade::class,
    ]

Configure MySQL and PDO, insert the following code in config/database.php:

    'mysql' => [
        'options'   => [PDO::MYSQL_ATTR_LOCAL_INFILE => true],
    ],

Publishing the configuration file, this is where you can change the default table name

php artisan vendor:publish

Publishing the migration and seeder files

php artisan cities:migration
php artisan cities:seeder

To make sure the data is seeded insert the following code in seeds/DatabaseSeeder.php

    // Seeding the cities
    $this->call(CitiesTableSeeder::class);
    $this->command->info('Seeded the cities table ...'); 

You may now run:

php artisan migrate --seed

After running this command the filled cities table will be available

Table structure

| id | country | city | city_ascii | region | population | latitude | longitude | | -------- | ---------| --------- | ----------- | ------- | ----------- | --------- | ---------- | | .. | .. | .. | .. | .. | .. | .. | .. | | 2685662 | sd | Khartoum | khartoum | 29 | 1974780 | 15.588056 | 32.534167 | | .. | .. | .. | .. | .. | .. | .. | .. |

Example

The package provides a City model which can be used to query the data

    \Pixxet\LaravelGeoIPWorldCities\City::whereCity('Khartoum')->first();

Troubleshooting

If you are getting a ReflectionException when trying to seed

    [ReflectionException]                   
    Class CitiesTableSeeder does not exist 

run:

    composer dump-autoload

and try again.

Change log

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Credits

License

MaxMind WorldCities License.

The MIT License (MIT). Please see License File for more information.

Star History Chart