How to get country list in laravel ?

10-Mar-2023

.

Admin

How to get country list in laravel ?

Hi Guys,

In this example,I will learn you how to get country list in laravel.you can easy and simply get get country list in laravel.

I am going to show you how to get the list of all the countries in your laravel 8 app, it is also applicable to laravel 7 downwards.

Step 1: Install Laravel Project


First, you need to download the laravel fresh setup. Use this command then download laravel project setup :

composer create-project --prefer-dist laravel/laravel blog

Step 2: Setup Database

After successfully install laravel 8 Application, Go to your project .env file and set up database credential and move next step :

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=here your database name

DB_USERNAME=here database username

DB_PASSWORD=here database password

Step 3: Create Migration

we are going to create file upload application for coutries. so we have to create migration for "countries" table and create model using Laravel 8 php artisan command, so first fire bellow command:

php artisan make:migration countries

After this command you will find one file in following path "database/migrations" and you have to put bellow code in your migration file for create countries table

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class CreateCountriesTable extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::create('countries', function (Blueprint $table) {

$table->bigIncrements('id');

$table->string('name');

$table->string('code');

$table->timestamps();

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('countries');

}

}

Now you have to run this migration by following command:

php artisan migrate

Step 4 : Make Seeder

In this step, we will create a seeder file for storing all countries data in countries table

php artisan make:seeder CountrySeeder

database/seeders/CountrySeeder.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

use DB;

class CountrySeeder extends Seeder

{

/**

* Run the database seeds.

*

* @return void

*/

public function run()

{

DB::table('countries')->truncate();

$countries = [

['name' => 'Afghanistan', 'code' => 'AF'],

['name' => 'Åland Islands', 'code' => 'AX'],

['name' => 'Albania', 'code' => 'AL'],

['name' => 'Algeria', 'code' => 'DZ'],

['name' => 'American Samoa', 'code' => 'AS'],

['name' => 'Andorra', 'code' => 'AD'],

['name' => 'Angola', 'code' => 'AO'],

['name' => 'Anguilla', 'code' => 'AI'],

['name' => 'Antarctica', 'code' => 'AQ'],

['name' => 'Antigua and Barbuda', 'code' => 'AG'],

['name' => 'Argentina', 'code' => 'AR'],

['name' => 'Armenia', 'code' => 'AM'],

['name' => 'Aruba', 'code' => 'AW'],

['name' => 'Australia', 'code' => 'AU'],

['name' => 'Austria', 'code' => 'AT'],

['name' => 'Azerbaijan', 'code' => 'AZ'],

['name' => 'Bahamas', 'code' => 'BS'],

['name' => 'Bahrain', 'code' => 'BH'],

['name' => 'Bangladesh', 'code' => 'BD'],

['name' => 'Barbados', 'code' => 'BB'],

['name' => 'Belarus', 'code' => 'BY'],

['name' => 'Belgium', 'code' => 'BE'],

['name' => 'Belize', 'code' => 'BZ'],

['name' => 'Benin', 'code' => 'BJ'],

['name' => 'Bermuda', 'code' => 'BM'],

['name' => 'Bhutan', 'code' => 'BT'],

['name' => 'Bolivia, Plurinational State of', 'code' => 'BO'],

['name' => 'Bonaire, Sint Eustatius and Saba', 'code' => 'BQ'],

['name' => 'Bosnia and Herzegovina', 'code' => 'BA'],

['name' => 'Botswana', 'code' => 'BW'],

['name' => 'Bouvet Island', 'code' => 'BV'],

['name' => 'Brazil', 'code' => 'BR'],

['name' => 'British Indian Ocean Territory', 'code' => 'IO'],

['name' => 'Brunei Darussalam', 'code' => 'BN'],

['name' => 'Bulgaria', 'code' => 'BG'],

['name' => 'Burkina Faso', 'code' => 'BF'],

['name' => 'Burundi', 'code' => 'BI'],

['name' => 'Cambodia', 'code' => 'KH'],

['name' => 'Cameroon', 'code' => 'CM'],

['name' => 'Canada', 'code' => 'CA'],

['name' => 'Cape Verde', 'code' => 'CV'],

['name' => 'Cayman Islands', 'code' => 'KY'],

['name' => 'Central African Republic', 'code' => 'CF'],

['name' => 'Chad', 'code' => 'TD'],

['name' => 'Chile', 'code' => 'CL'],

['name' => 'China', 'code' => 'CN'],

['name' => 'Christmas Island', 'code' => 'CX'],

['name' => 'Cocos (Keeling) Islands', 'code' => 'CC'],

['name' => 'Colombia', 'code' => 'CO'],

['name' => 'Comoros', 'code' => 'KM'],

['name' => 'Congo', 'code' => 'CG'],

['name' => 'Congo, the Democratic Republic of the', 'code' => 'CD'],

['name' => 'Cook Islands', 'code' => 'CK'],

['name' => 'Costa Rica', 'code' => 'CR'],

['name' => 'Côte d\'Ivoire', 'code' => 'CI'],

['name' => 'Croatia', 'code' => 'HR'],

['name' => 'Cuba', 'code' => 'CU'],

['name' => 'Curaçao', 'code' => 'CW'],

['name' => 'Cyprus', 'code' => 'CY'],

['name' => 'Czech Republic', 'code' => 'CZ'],

['name' => 'Denmark', 'code' => 'DK'],

['name' => 'Djibouti', 'code' => 'DJ'],

['name' => 'Dominica', 'code' => 'DM'],

['name' => 'Dominican Republic', 'code' => 'DO'],

['name' => 'Ecuador', 'code' => 'EC'],

['name' => 'Egypt', 'code' => 'EG'],

['name' => 'El Salvador', 'code' => 'SV'],

['name' => 'Equatorial Guinea', 'code' => 'GQ'],

['name' => 'Eritrea', 'code' => 'ER'],

['name' => 'Estonia', 'code' => 'EE'],

['name' => 'Ethiopia', 'code' => 'ET'],

['name' => 'Falkland Islands (Malvinas)', 'code' => 'FK'],

['name' => 'Faroe Islands', 'code' => 'FO'],

['name' => 'Fiji', 'code' => 'FJ'],

['name' => 'Finland', 'code' => 'FI'],

['name' => 'France', 'code' => 'FR'],

['name' => 'French Guiana', 'code' => 'GF'],

['name' => 'French Polynesia', 'code' => 'PF'],

['name' => 'French Southern Territories', 'code' => 'TF'],

['name' => 'Gabon', 'code' => 'GA'],

['name' => 'Gambia', 'code' => 'GM'],

['name' => 'Georgia', 'code' => 'GE'],

['name' => 'Germany', 'code' => 'DE'],

['name' => 'Ghana', 'code' => 'GH'],

['name' => 'Gibraltar', 'code' => 'GI'],

['name' => 'Greece', 'code' => 'GR'],

['name' => 'Greenland', 'code' => 'GL'],

['name' => 'Grenada', 'code' => 'GD'],

['name' => 'Guadeloupe', 'code' => 'GP'],

['name' => 'Guam', 'code' => 'GU'],

['name' => 'Guatemala', 'code' => 'GT'],

['name' => 'Guernsey', 'code' => 'GG'],

['name' => 'Guinea', 'code' => 'GN'],

['name' => 'Guinea-Bissau', 'code' => 'GW'],

['name' => 'Guyana', 'code' => 'GY'],

['name' => 'Haiti', 'code' => 'HT'],

['name' => 'Heard Island and McDonald Mcdonald Islands', 'code' => 'HM'],

['name' => 'Holy See (Vatican City State)', 'code' => 'VA'],

['name' => 'Honduras', 'code' => 'HN'],

['name' => 'Hong Kong', 'code' => 'HK'],

['name' => 'Hungary', 'code' => 'HU'],

['name' => 'Iceland', 'code' => 'IS'],

['name' => 'India', 'code' => 'IN'],

['name' => 'Indonesia', 'code' => 'ID'],

['name' => 'Iran, Islamic Republic of', 'code' => 'IR'],

['name' => 'Iraq', 'code' => 'IQ'],

['name' => 'Ireland', 'code' => 'IE'],

['name' => 'Isle of Man', 'code' => 'IM'],

['name' => 'Israel', 'code' => 'IL'],

['name' => 'Italy', 'code' => 'IT'],

['name' => 'Jamaica', 'code' => 'JM'],

['name' => 'Japan', 'code' => 'JP'],

['name' => 'Jersey', 'code' => 'JE'],

['name' => 'Jordan', 'code' => 'JO'],

['name' => 'Kazakhstan', 'code' => 'KZ'],

['name' => 'Kenya', 'code' => 'KE'],

['name' => 'Kiribati', 'code' => 'KI'],

['name' => 'Korea, Democratic People\'s Republic of', 'code' => 'KP'],

['name' => 'Korea, Republic of', 'code' => 'KR'],

['name' => 'Kuwait', 'code' => 'KW'],

['name' => 'Kyrgyzstan', 'code' => 'KG'],

['name' => 'Lao People\'s Democratic Republic', 'code' => 'LA'],

['name' => 'Latvia', 'code' => 'LV'],

['name' => 'Lebanon', 'code' => 'LB'],

['name' => 'Lesotho', 'code' => 'LS'],

['name' => 'Liberia', 'code' => 'LR'],

['name' => 'Libya', 'code' => 'LY'],

['name' => 'Liechtenstein', 'code' => 'LI'],

['name' => 'Lithuania', 'code' => 'LT'],

['name' => 'Luxembourg', 'code' => 'LU'],

['name' => 'Macao', 'code' => 'MO'],

['name' => 'Macedonia, the Former Yugoslav Republic of', 'code' => 'MK'],

['name' => 'Madagascar', 'code' => 'MG'],

['name' => 'Malawi', 'code' => 'MW'],

['name' => 'Malaysia', 'code' => 'MY'],

['name' => 'Maldives', 'code' => 'MV'],

['name' => 'Mali', 'code' => 'ML'],

['name' => 'Malta', 'code' => 'MT'],

['name' => 'Marshall Islands', 'code' => 'MH'],

['name' => 'Martinique', 'code' => 'MQ'],

['name' => 'Mauritania', 'code' => 'MR'],

['name' => 'Mauritius', 'code' => 'MU'],

['name' => 'Mayotte', 'code' => 'YT'],

['name' => 'Mexico', 'code' => 'MX'],

['name' => 'Micronesia, Federated States of', 'code' => 'FM'],

['name' => 'Moldova, Republic of', 'code' => 'MD'],

['name' => 'Monaco', 'code' => 'MC'],

['name' => 'Mongolia', 'code' => 'MN'],

['name' => 'Montenegro', 'code' => 'ME'],

['name' => 'Montserrat', 'code' => 'MS'],

['name' => 'Morocco', 'code' => 'MA'],

['name' => 'Mozambique', 'code' => 'MZ'],

['name' => 'Myanmar', 'code' => 'MM'],

['name' => 'Namibia', 'code' => 'NA'],

['name' => 'Nauru', 'code' => 'NR'],

['name' => 'Nepal', 'code' => 'NP'],

['name' => 'Netherlands', 'code' => 'NL'],

['name' => 'New Caledonia', 'code' => 'NC'],

['name' => 'New Zealand', 'code' => 'NZ'],

['name' => 'Nicaragua', 'code' => 'NI'],

['name' => 'Niger', 'code' => 'NE'],

['name' => 'Nigeria', 'code' => 'NG'],

['name' => 'Niue', 'code' => 'NU'],

['name' => 'Norfolk Island', 'code' => 'NF'],

['name' => 'Northern Mariana Islands', 'code' => 'MP'],

['name' => 'Norway', 'code' => 'NO'],

['name' => 'Oman', 'code' => 'OM'],

['name' => 'Pakistan', 'code' => 'PK'],

['name' => 'Palau', 'code' => 'PW'],

['name' => 'Palestine, State of', 'code' => 'PS'],

['name' => 'Panama', 'code' => 'PA'],

['name' => 'Papua New Guinea', 'code' => 'PG'],

['name' => 'Paraguay', 'code' => 'PY'],

['name' => 'Peru', 'code' => 'PE'],

['name' => 'Philippines', 'code' => 'PH'],

['name' => 'Pitcairn', 'code' => 'PN'],

['name' => 'Poland', 'code' => 'PL'],

['name' => 'Portugal', 'code' => 'PT'],

['name' => 'Puerto Rico', 'code' => 'PR'],

['name' => 'Qatar', 'code' => 'QA'],

['name' => 'Réunion', 'code' => 'RE'],

['name' => 'Romania', 'code' => 'RO'],

['name' => 'Russian Federation', 'code' => 'RU'],

['name' => 'Rwanda', 'code' => 'RW'],

['name' => 'Saint Barthélemy', 'code' => 'BL'],

['name' => 'Saint Helena, Ascension and Tristan da Cunha', 'code' => 'SH'],

['name' => 'Saint Kitts and Nevis', 'code' => 'KN'],

['name' => 'Saint Lucia', 'code' => 'LC'],

['name' => 'Saint Martin (French part)', 'code' => 'MF'],

['name' => 'Saint Pierre and Miquelon', 'code' => 'PM'],

['name' => 'Saint Vincent and the Grenadines', 'code' => 'VC'],

['name' => 'Samoa', 'code' => 'WS'],

['name' => 'San Marino', 'code' => 'SM'],

['name' => 'Sao Tome and Principe', 'code' => 'ST'],

['name' => 'Saudi Arabia', 'code' => 'SA'],

['name' => 'Senegal', 'code' => 'SN'],

['name' => 'Serbia', 'code' => 'RS'],

['name' => 'Seychelles', 'code' => 'SC'],

['name' => 'Sierra Leone', 'code' => 'SL'],

['name' => 'Singapore', 'code' => 'SG'],

['name' => 'Sint Maarten (Dutch part)', 'code' => 'SX'],

['name' => 'Slovakia', 'code' => 'SK'],

['name' => 'Slovenia', 'code' => 'SI'],

['name' => 'Solomon Islands', 'code' => 'SB'],

['name' => 'Somalia', 'code' => 'SO'],

['name' => 'South Africa', 'code' => 'ZA'],

['name' => 'South Georgia and the South Sandwich Islands', 'code' => 'GS'],

['name' => 'South Sudan', 'code' => 'SS'],

['name' => 'Spain', 'code' => 'ES'],

['name' => 'Sri Lanka', 'code' => 'LK'],

['name' => 'Sudan', 'code' => 'SD'],

['name' => 'Suriname', 'code' => 'SR'],

['name' => 'Svalbard and Jan Mayen', 'code' => 'SJ'],

['name' => 'Swaziland', 'code' => 'SZ'],

['name' => 'Sweden', 'code' => 'SE'],

['name' => 'Switzerland', 'code' => 'CH'],

['name' => 'Syrian Arab Republic', 'code' => 'SY'],

['name' => 'Taiwan', 'code' => 'TW'],

['name' => 'Tajikistan', 'code' => 'TJ'],

['name' => 'Tanzania, United Republic of', 'code' => 'TZ'],

['name' => 'Thailand', 'code' => 'TH'],

['name' => 'Timor-Leste', 'code' => 'TL'],

['name' => 'Togo', 'code' => 'TG'],

['name' => 'Tokelau', 'code' => 'TK'],

['name' => 'Tonga', 'code' => 'TO'],

['name' => 'Trinidad and Tobago', 'code' => 'TT'],

['name' => 'Tunisia', 'code' => 'TN'],

['name' => 'Turkey', 'code' => 'TR'],

['name' => 'Turkmenistan', 'code' => 'TM'],

['name' => 'Turks and Caicos Islands', 'code' => 'TC'],

['name' => 'Tuvalu', 'code' => 'TV'],

['name' => 'Uganda', 'code' => 'UG'],

['name' => 'Ukraine', 'code' => 'UA'],

['name' => 'United Arab Emirates', 'code' => 'AE'],

['name' => 'United Kingdom', 'code' => 'GB'],

['name' => 'United States', 'code' => 'US'],

['name' => 'United States Minor Outlying Islands', 'code' => 'UM'],

['name' => 'Uruguay', 'code' => 'UY'],

['name' => 'Uzbekistan', 'code' => 'UZ'],

['name' => 'Vanuatu', 'code' => 'VU'],

['name' => 'Venezuela, Bolivarian Republic of', 'code' => 'VE'],

['name' => 'Viet Nam', 'code' => 'VN'],

['name' => 'Virgin Islands, British', 'code' => 'VG'],

['name' => 'Virgin Islands, U.S.', 'code' => 'VI'],

['name' => 'Wallis and Futuna', 'code' => 'WF'],

['name' => 'Western Sahara', 'code' => 'EH'],

['name' => 'Yemen', 'code' => 'YE'],

['name' => 'Zambia', 'code' => 'ZM'],

['name' => 'Zimbabwe', 'code' => 'ZW'],

];

DB::table('countries')->insert($countries);

}

}

Step 5: Add Route

Here, we need to add route for ajax form submit. so open your "routes/web.php" file and add following route.

routes/web.php

use App\Http\Controllers\ContactController;

Route::get('/country-list', [CountryController::class, 'index']);

Step 6: Add Controller

In this step, now we should create new controller as CountryController. So run bellow command and create new controller. bellow controller for create CountryController.

php artisan make:controller CountryController

app/Http/Controllers/CountryController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Country;

class CountryController extends Controller

{

public function index()

{

$Getcountrylist = Country::pluck('name','code')->all();

return view('country',compact('Getcountrylist'));

}

}

Step 7: Add Blade

resources/views/country.blade.php

<!DOCTYPE html>

<html lang="en">

<head>

<title>get all country list</title>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

</head>

<body>

<div class="container">

<div class="row">

<div class="card">

<div class="card-header bg-info">

<div class="row text-center">

<h2>How to get country list in laravel ?</h2>

</div>

</div>

<div class="card-body">

<div class="row">

<div class="col-md-6">

<div class="form-group">

<label>Name</label>

<input type="text" name="name" class="form-control">

</div>

</div>

<div class="col-md-6">

<div class="form-group">

<label>Email</label>

<input type="text" name="email" class="form-control">

</div>

</div>

</div>

<div class="row">

<div class="col-md-6">

<div class="form-group">

<label>Password</label>

<input type="password" name="password" class="form-control">

</div>

</div>

<div class="col-md-6">

<div class="form-group">

<label>Phone</label>

<input type="text" name="phone" class="form-control">

</div>

</div>

</div>

<div class="row">

<div class="col-md-6">

<div class="form-group">

<label>Country</label>

<select class="form-control">

@foreach ($Getcountrylist as $key => $Country)

<option value="">{{ $Country }} - {{ $key }}</option>

@endforeach

</select>

</div>

</div>

</div>

<div class="row text-center">

<button type="submit" class="btn btn-suucess">Submit</button>

<button class="btn btn-warning">Cancle</button>

</div>

</div>

</div>

</div>

</div>

</div>

</body>

</html>

Now we are ready to run contact form submit request with laravel 8 so run bellow command for quick run:

php artisan serve

Now you can open bellow URL on your browser:

localhost:8000/country-list

It will help you...

#Laravel 8

#Laravel 7

#Laravel

#Laravel 6