2015-04-13 4 views
5

Ich habe Probleme, die tatsächlichen Daten in meine Datenbank zu säen. Ich erhalte die Fehlermeldung:Laravel: Integritätseinschränkung: 1062 Duplizieren Sie den Eintrag '[email protected]' für den Schlüssel 'users_email_unique'

"Integrity constraint violation: 1062 Duplicate entry '[email protected]' for key 'users_email_unique'" 

Dies ist, was mein Werk wie folgt aussieht:

$factory('App\User', [ 
    'name'  => 'Jon Doe', 
    'email' => '[email protected]', 
    'password' => password_hash('123456', PASSWORD_DEFAULT), 
]); 

$factory('App\User', [ 
    'name'  => 'Jane Doe', 
    'email' => '[email protected]', 
    'password' => password_hash('123456', PASSWORD_DEFAph ULT), 
]); 

Ich weiß nicht einmal die UserTableSeeder laufen, aber es scheint wieder die [email protected] abzufeuern.

Irgendwelche Hinweise?

Hier ist mein 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'); 
    } 

} 

Und das ist mein UserTableSeeder, die

oben heraus kommentiert wird
<?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'); 
    } 

} 

Bitte Beratung.

+1

Sie Code ein wenig aussieht aus. Der angegebene Code hat doe.com, während der Fehler über doe.de steht. – kranthi117

Antwort

0

die Lösung ist eine der nahe liegende, nur Fälscher verwenden Ihre Dummy-Daten in Ihrem Werk

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

]) zu erzeugen;

, weil Sie die duplizierte E-Mail-Adressen haben, und Sie haben eine einzigartige Regeln in der Migration setzen

falls Sie die Dummy-Daten außer Kraft setzen möchten, können Sie tun

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

Thx für den Kommentar, aber das konnte mir nicht helfen, weil der Fehler, den ich bekomme, auf "doppelte" E-Mail-Adressen zurückzuführen ist. Meine Migration erfordert, dass E-Mails eindeutig sein müssen. Nichtsdestotrotz behebt dies das Problem auch nicht, da mein anfängliches Problem darin besteht, dass für jeden erstellten Auftrag ein neuer Benutzer erstellt wurde, was seltsam genug war ... Danke, dass du trotzdem reagierst. – LoveAndHappiness

+1

Wie hast du es gelöst? – brotherperes

Verwandte Themen