2017-08-01 50 views
3

我是laravel的新手我正在嘗試按照教程創建數據庫的數據庫播種器。因此,對於這一點,我已經使用php artisan make:seeder ArticlesTableSeeder命令Seeder命令不起作用Laravel 5.4

播種機

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, 
      ]); 
     } 
    } 
} 

現在,當我運行php artisan db:seed --class=ArticlesTableSeeder命令我有這個錯誤

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

我有一個文章modal

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

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

我在這裏做錯了什麼?我搜索了這個錯誤,發現它們的最大值是由於拼寫錯誤。我想我在這裏沒有拼寫錯誤。這段代碼有什麼問題?

幫助將不勝感激。

+0

您是否在播種機中爲您的模型添加了Use? – Crawdingle

+0

您是否發佈了整個播種器文件?如果不是,則需要從'App'命名空間導入模型。 – 2017-08-01 12:02:48

+0

YE我發佈了整個播種器文件。 – Prakash

回答

-1

所有你應該做的是Article前添加\App\或簡單地添加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

就可以了。 – Prakash

+0

@Prakash我們使用truncate刪除表中的所有記錄然後重新用新鮮的表:) – Maraboc

+0

@Prakash在[doc]中查看一下(https://laravel.com/docs/5.4/queries#deletes )瞭解更多信息 – 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

它的工作表示感謝。 – Prakash

0

你錯過了,包括您的控制器內部模型,所以你得到class not found error。將該行添加到您的控制器之前

use App\Article; 
+0

它的工作表示感謝。 – Prakash

+0

你能解釋爲什麼我們使用truncate()嗎? – Prakash

+0

要截斷整個表,這將刪除所有行並將自動遞增ID重置爲零。你可以在這裏獲得定義https://laravel.com/docs/5.4/queries#deletes –