Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Do you want to Generate a unique mobile phone number with Faker in the Laravel application?
This step-by-step tutorial helps you learn how to create a Factory and insert dummy unique phone number records in the table in the Laravel application with the help of Factory.
To see an example of how to write a factory we will create a users table and create a factory to insert some dummy user records with unique phone numbers in the users table.
When testing your application or seeding your database, you may need to insert a few records into your database. Instead of manually specifying the value of each column, Laravel allows you to define a set of default attributes for each of your Eloquent models using model factories.
In this guide, I will tell you how to create and use a factory in the Laravel 9 application using Eloquent Factories.
database/migrations/create_users_table.php
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->string('phone')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } };
Next, you can migrate table properties in the database with the artisan migrate command:
php artisan migrate
Defining Model Factories – Generating Factories
php artisan make:factory UserFactory
The new factory class will be placed in your <strong>database/factories</strong>
directory.
database\factories\UserFactory.php
<?php namespace Database\Factories; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Str; /** * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User> */ class UserFactory extends Factory { /** * Define the model's default state. * * @return array<string, mixed> */ public function definition() { return [ 'name' => fake()->name(), 'email' => fake()->unique()->safeEmail(), 'phone' => fake()->numerify('##########'), 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'remember_token' => Str::random(10), ]; } /** * Indicate that the model's email address should be unverified. * * @return static */ public function unverified() { return $this->state(fn (array $attributes) => [ 'email_verified_at' => null, ]); } }
#####
is commonly used to indicate a phone extension.
Define Factory in Database Seeder Trait
database\seeders\DatabaseSeeder.php
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { \App\Models\User::factory(10)->create(); } }
Run your Seeder File
php artisan db:seed
Output:-
I hope that this article helped you learn How to Generate a unique mobile phone number with faker in Laravel 9. You may also want to check out our guide on How To Create Factory In Laravel 9 example in the Laravel application.
Read also:- Export and Import model as JSON file example in Laravel.