Laravel: Integrity constraint violation: 1062 Duplicate entry ' jon@doe.com ' for key 'users_email_unique'

I have some problems with sowing the actual data in my database. I get an error message:

"Integrity constraint violation: 1062 Duplicate entry ' jon@doe.de ' for key 'users_email_unique'" 

This is what my factory looks like:

 $factory('App\User', [ 'name' => 'Jon Doe', 'email' => ' jon@doe.com ', 'password' => password_hash('123456', PASSWORD_DEFAULT), ]); $factory('App\User', [ 'name' => 'Jane Doe', 'email' => ' jane@doe.com ', 'password' => password_hash('123456', PASSWORD_DEFAph ULT), ]); 

I don’t even start UserTableSeeder, but it seems to run jon@doe.com. again

Any clues?

Here is my DatabaseSeeder:

 <?php use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); // $this->call('UserTableSeeder'); $this->call('ClientTableSeeder'); $this->call('OrderTableSeeder'); $this->call('FileTableSeeder'); } } 

And this is my UserTableSeeder, which is commented above

 <?php use Illuminate\Database\Seeder; // composer require laracasts/testdummy use Laracasts\TestDummy\Factory as TestDummy; class UserTableSeeder extends Seeder { public function run() { TestDummy::times(1)->create('App\User'); } } 

Please advice.

+5
source share
1 answer

the solution is obvious, just use faker to create your dummy data in the factory

 $factory('App\User', [ 'name' => $faker->name, 'email' => $faker->email, 'password' => password_hash('123456', PASSWORD_DEFAULT), 

]);

since you have duplicate email addresses and you set unique rules in your migration.

if you want to override dummy data you can do

 $overwrite = ['name' => 'Jon Doe','email' =>'jondoe.email.com']; TestDummy::times(1)->create('App\User',$overwrite); 
0
source

All Articles