2017-08-01 95 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 –