Skip to content

Laravel-Countries, is a package that contains everything you need to start a new project and have all countries, information and translations on hand. And all this optimized for Laravel 8 and 9.

License

Notifications You must be signed in to change notification settings

vadimwe/laravel-countries-l10

 
 

Repository files navigation

Latest Version on Packagist Total Downloads

Very short description

Laravel-Countries, is a package that contains everything you need to start a new project and have all countries, information and translations on hand. And all this optimized for Laravel 8 and 9.

The package provides all data directly to your database, allowing you to link to any other table in your database, in a simple and usual way.

Geology and topology maps

Amongst many other information you'll be able to plot country maps:

Available Languages?

Language
English
Portuguese
Spanish
Italian

Requirements

Installation

You can install the package via composer:

composer require lwwcas/laravel-countries
composer dump-autoload
  • Put this line into database\seeds\DatabaseSeeder.php in run function
$this->call(\Lwwcas\LaravelCountries\Database\Seeders\LcDatabaseSeeder::class);
  • Run migrations
php artisan migrate
  • Run seeds or only the LcDatabaseSeeder class
php artisan db:seed

Usage

You can access all the information in the database with a simple query

use  Lwwcas\LaravelCountries\Models\Country;

Country::whereIso('BR')->first();
Country::whereIsoAlpha3('BRA')->first();
Country::whereSlug('brasil')->first();

How to integrate into my project?

In your table you can simply add the foreign key.

Only this will allow you to make a relationship with the country table

$table->integer('lc_country_id')->unsigned();

Being optional, but strongly recommended, you should use the Foreign Key Constraints that Laravel provides.

$table->foreign('lc_country_id')->references('id')->on('lc_countries');

Example of implementation in the users table

To make a relationship with the regions table

$table->tinyInteger('lc_region_id')->unsigned();
$table->foreign('lc_region_id')->references('id')->on('lc_regions');

Take a good look at the Model and see the package makes it easy

Country

CountryTranslation

CountryRegion

CountryRegionTranslation

CountryGeographical

Example data

{
  "id": 30,
  "lc_region_id": 2,
  "uuid": "343d2082-f6fb-42e6-ac7a-f78dad39de31",
  "slug": "brazil",
  "name": "Brazil",
  "official_name": "Federative Republic of Brazil",
  "iso_alpha_2": "BR",
  "iso_alpha_3": "BRA",
  "iso_numeric": 76,
  "geoname_id": "3469034",
  "international_phone": "55",
  "languages": "[pt]",
  "tld": "[.br]",
  "wmo": "BZ",
  "emoji": {
    "img": "🇧🇷",
    "uCode": "U+1F1E7 U+1F1F7"
  },
  "color_hex": [
    "#008000",
    "#ffff00"
  ],
  "color_rgb": [
    "0,128,0",
    "255,255,0"
  ],
  "coordinates": {
    "latitude": {
      "classic": "10 00 S",
      "desc": "-10.81045150756836"
    },
    "longitude": {
      "classic": "55 00 W",
      "desc": "-52.97311782836914"
    }
  },
  "coordinates_limit": {
    "latitude": {
      "max": "5.266667",
      "min": "-33.733333"
    },
    "longitude": {
      "max": "-28.85",
      "min": "-73.75"
    }
  },
  "visible": true,
  "translations": [
    {
      "id": 30,
      "lc_country_id": 30,
      "name": "Brazil",
      "slug": "brazil",
      "locale": "en"
    }
  ]
}

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email lwwcas@gmail.com instead of using the issue tracker.

Credits

License

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

About

Laravel-Countries, is a package that contains everything you need to start a new project and have all countries, information and translations on hand. And all this optimized for Laravel 8 and 9.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%