2017-08-01 3 views
3

Ich bin neu in Laravel Ich versuche, ein Tutorial zu folgen, in dem ich einen Datenbank Seeder für die DB erstellen. Also für das, ich habe php artisan make:seeder ArticlesTableSeeder BefehlSeeder Befehl funktioniert nicht Laravel 5.4

Seeder

class ArticlesTableSeeder extends Seeder 
{ 
    public function run() 
    { 
     // Let's truncate our existing records to start from scratch. 
     Article::truncate(); 

     $faker = \Faker\Factory::create(); 

     // And now, let's create a few articles in our database: 
     for ($i = 0; $i < 50; $i++) { 
      Article::create([ 
       'title' => $faker->sentence, 
       'body' => $faker->paragraph, 
      ]); 
     } 
    } 
} 

Jetzt verwendet, wenn ich den php artisan db:seed --class=ArticlesTableSeeder Befehl ausgeführt habe ich habe diesen Fehler

[Symfony\Component\Debug\Exception\FatalThrowableError] Class 'Article' not found

Ich habe einen Artikel modal

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Article extends Model 
{ 
    protected $fillable = ['title', 'body']; 
} 

Was mache ich hier falsch? Ich habe nach diesem Fehler gesucht und festgestellt, dass das Maximum von ihnen auf Rechtschreibfehler zurückzuführen ist. Ich denke, ich habe hier keinen Rechtschreibfehler. Was ist falsch an diesem Code?

Hilfe wäre willkommen.

+0

Haben Sie eine Verwendung für Ihr Modell in Ihrer Sämaschine hinzufügen? – Crawdingle

+0

Haben Sie die ganze Sämaschine-Datei gepostet? Wenn nicht, müssen Sie das Modell aus dem Namespace 'App' importieren. –

+0

YEs Ich habe die ganze Sämaschine Datei veröffentlicht. – Prakash

Antwort

-1

Alles, was Sie tun sollten, ist \App\ vor Article hinzufügen oder fügen Sie einfach use \App\Article

class ArticlesTableSeeder extends Seeder 
{ 
    public function run() 
    { 
     // Let's truncate our existing records to start from scratch. 
     \App\Article::truncate(); 

     $faker = \Faker\Factory::create(); 

     // And now, let's create a few articles in our database: 
     for ($i = 0; $i < 50; $i++) { 
      \App\Article::create([ 
       'title' => $faker->sentence, 
       'body' => $faker->paragraph, 
      ]); 
     } 
    } 
} 
+0

hinzu. Es funktionierte dank. – Prakash

+0

@Prakash wir verwenden truncate, um alle Datensätze in der Tabelle zu entfernen und dann mit neuer Tabelle neu zu beginnen :) – Maraboc

+0

@Prakash werfen Sie einen Blick in die [doc] (https://laravel.com/docs/5.4/queries#deletes) für mehr Infos – Maraboc

0
use App\Article; 

class ArticlesTableSeeder extends Seeder 
    { 
     public function run() 
     { 
      // Let's truncate our existing records to start from scratch. 
      Article::truncate(); 

      $faker = \Faker\Factory::create(); 

      // And now, let's create a few articles in our database: 
      for ($i = 0; $i < 50; $i++) { 
       Article::create([ 
        'title' => $faker->sentence, 
        'body' => $faker->paragraph, 
       ]); 
      } 
     } 
    } 
+0

Es hat funktioniert. – Prakash

0

Sie verfehlten Ihr Modell in Ihrem Controller enthalten, so dass Sie class not found error bekommen. Fügen Sie diese Zeile zu Ihrem Controller hinzu, bevor die Klasse

+0

Es hat funktioniert, danke. – Prakash

+0

Können Sie erklären, warum wir truncate() verwenden? – Prakash

+0

Zum Abschneiden der gesamten Tabelle, wodurch alle Zeilen entfernt und die automatisch inkrementierende ID auf Null zurückgesetzt wird. Sie können die Definition hier erhalten https://laravel.com/docs/5.4/queries#deletes –

Verwandte Themen