In this tutorial we will learn how to create fake data in database using Laravel.
How to Create Dummy Data in Database using Laravel
Laravel provides a convenient way to generate fake data for testing purposes using its built-in package called Faker. Faker generates realistic fake data such as names, addresses, phone numbers, etc. that can be used to populate your database tables.
Here's how to add dummy data to your Laravel application:
1) By entering the following line in your terminal, you can install the Faker package.
composer require fakerphp/faker
2) Once installed, you can start using Faker to generate fake data. Import the Faker namespace at the top of your file.
use Faker\Factory as Faker;
3) Now, create a new instance of Faker in your code.
$faker = Faker::create();
4) You can now use the Faker instance to generate fake data. For example, if you want to create a new user record in your databasethen you need to use following code.
$user = new User;
$user->name = $faker->name;
$user->email = $faker->email;
$user->password = bcrypt('password');
$user->save();
The above code will generate a random name and email address using Faker package and save it to the database with a password of 'password' (its just an example but you can use a secure password instead).
5) You can also generate multiple records at once by using a loop. For example, if you want to create 10 new user records, then you need to use below code.
for ($i = 0; $i < 10; $i++) {
$user = new User;
$user->name = $faker->name;
$user->email = $faker->email;
$user->password = bcrypt('password');
$user->save();
}
This code will generate 10 random user records and save them to the database.
Note: You can generate more than 10 as per your need but in this example we get only 10 random details.
Here are some more examples :-
1) Random Addresses
$faker->address;
$faker->city;
$faker->state;
$faker->postcode;
2) Random Dates
$faker->date;
$faker->dateTime;
$faker->dateTimeBetween('-1 week', '+1 week');
3) Random Lorem Ipsum Text
$faker->sentence;
$faker->paragraph;
$faker->text;
4) Random Number and Booleans Value
$faker->randomNumber(3);
$faker->randomFloat(2, 0, 100);
$faker->boolean;
5) Random Image URLs
$faker->imageUrl(640, 480, 'cats');
$faker->imageUrl(640, 480, 'dogs');
$faker->imageUrl(640, 480, 'abstract');
6) Random Username
$faker->userName;
7) Random Password
$faker->password;
8) Random Company Name and Job Title
$faker->company;
$faker->jobTitle;
9) Random Credit Card Details
$faker->creditCardNumber;
$faker->creditCardType;
$faker->creditCardExpirationDateString;
10) Random IP Addresses and URLs
$faker->ipv4;
$faker->ipv6;
$faker->url;
11) Random UUIDs
$faker->uuid;
12) Random Color's
$faker->hexcolor;
$faker->rgbColor;
$faker->safeColorName;
13) Random File Name and Extensions
$faker->fileExtension;
$faker->mimeType;
$faker->file($sourceDir = '/tmp', $targetDir = '/path/to/target');
14) Random MAC Addreses
$faker->macAddress;
15) Random Latitude and Longitude Coordinates
$faker->latitude;
$faker->longitude;
16) Random Timestamps
$faker->unixTime;
$faker->dateTimeThisCentury->getTimestamp();
$faker->dateTimeBetween('-1 year', 'now')->getTimestamp();
17) URLs with Query Parameters
$faker->url($scheme = 'http', $host = 'example.com', $path = '/path', $query = 'param1=value1¶m2=value2');
18) Random Phone Numbers With Specific Formats
$faker->phoneNumber;
$faker->e164PhoneNumber;
$faker->numberBetween(1000000000, 9999999999);
19) Random Words and Sentences with Specific Character Sets
$faker->word;
$faker->words($nb = 3, $asText = false);
$faker->sentence($nbWords = 6, $variableNbWords = true);
$faker->text($maxNbChars = 200);
$faker->regexify('[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}');
20) Random Sentences with Specific Lengths and Structures
$faker->sentence($nbWords = 6, $variableNbWords = true);
$faker->sentence($nbWords = 6, $variableNbWords = true)->camelCase;
$faker->sentence($nbWords = 6, $variableNbWords = true)->snakeCase;
$faker->sentence($nbWords = 6, $variableNbWords = true)->kebabCase;
21) Random Domain Names and TLDs
$faker->domainName;
$faker->tld;
22) Random User Agents
$faker->userAgent;
That's it! You can use Faker to generate fake data for any table in your database. To avoid SQL injection attacks, just be sure to sanitise any user input and use strong passwords.