2017-03-29 2 views
2

Ich habe eine Einzelkornsämaschine Klasse im DatenbankordnerBerufung php Handwerker db: Samen funktioniert nicht ohne einen Klassennamen Bereitstellung

class UsersTableSeeder extends Seeder 
{ 
    public function run() 
    { 
     $user = new User(); 
     $user->name   = 'Name'; 
     $user->email  = '[email protected]'; 
     $user->password  = bcrypt('secret'); 
     $user->save(); 

    } 
} 

Wenn ich laufen php artisan db:seed nichts passiert, wird die Sämaschine nur aufgerufen, wenn ich php artisan db:seed --class=UsersTableSeeder

laufen

Das bedeutet, ich muss jede Seeder-Klasse separat aufrufen, jede Idee, warum db:seed funktioniert nicht von selbst?

Antwort

3

Werfen Sie einen Blick auf database/seeds/DatabaseSeeder.php

Sie müssen die Anrufe an Ihre anderen seeders dort hinzuzufügen.

Dann wird db:seed funktionieren wie erwartet

Beispiel:

<?php 

use Illuminate\Database\Seeder; 

class DatabaseSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     $this->call(UsersTableSeeder::class); 
     $this->call(SecondSeedClass::class); 
     $this->call(ThirdSeedClass::class); 

    } 
} 
1

Sie müssen es die DatabaseSeeder Klasse hinzuzufügen:

public function run() 
{ 
    $this->call(UsersTableSeeder::class); 
} 
2

Sie haben die Samen Klassen in DatabaseSeeder Klasse in Samen Ordner zu registrieren. Alle Klassen in run-Methode wird Samen auf php artisab db sein: Samen Befehl

class DatabaseSeeder extends Seeder { 

    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() { 
     $this->call(UsersTableSeeder::class); 
     $this->call(AnotherSeeder::class); 

    } 

} 
Verwandte Themen