我不能在laravel中播种数据

时间:2017-08-03 04:52:16

标签: php laravel seeding

H有2个表,用户和作者,我有各自的模型。但是当我尝试种子时会发生以下错误:

  

班级'作者'找不到   /var/www/html/shopping/database/seeds/AuthorsTableSeeder.php在线   12

     

[Symfony \ Component \ Debug \ Exception \ FatalErrorException]类   '作者'找不到

之前我的用户表遇到了同样的问题,但我通过添加use Illuminate\Foundation\Auth\User;

修复了它

这是我的作者seeder.php

<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;


Class AuthorsTableSeeder extends Seeder {

    public function run()
    {
DB::table('authors')->delete();

        Author::create(array(
            'name' => 'Lauren',
            'surname'=>'Oliver'
        ));

        Author::create(array(
            'name' => 'Stephenie',
            'surname'=>'Meyer'
        ));

        Author::create(array(
            'name' => 'Dan',
            'surname'=>'Brown'
        ));

    }

}

我的databaseseeder.php在

之下
<?php

use Illuminate\Database\Seeder;


class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
    Eloquent::unguard();

    $this->call('UsersTableSeeder');
    $this->command->info('Users table seeded!');
    $this->call('AuthorsTableSeeder');
    $this->command->info('Authors table seeded!');

    }
}

这也是我的website folder

3 个答案:

答案 0 :(得分:2)

我找到了答案。问题在于语法。我使用以下内容并且有效

<?php namespace App;
use Illuminate\Database\Eloquent\Model;

Class Author extends Model {

protected $fillable = array('name','surname');
protected $table = 'authors';



}

我替换了以下代码的位置     protected $ fillable = array('name','surname');         protected $ table ='authors';

我使用'model'代替'eloquent'而且它有效

答案 1 :(得分:0)

Author添加模型名称AuthorsTableSeeder

use App\Author;

因为,您使用的是作者模型,而不是在顶部添加。

答案 2 :(得分:0)

你应该试试这个:

<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;


Class AuthorsTableSeeder extends Seeder {

    public function run()
    {
        DB::table('authors')->delete();

        DB::table('authors')->insert(array(
            'name' => 'Lauren',
            'surname'=>'Oliver'
        ));

        DB::table('authors')->insert(array(
            'name' => 'Stephenie',
            'surname'=>'Meyer'
        ));

        DB::table('authors')->insert(array(
            'name' => 'Dan',
            'surname'=>'Brown'
        ));

    }

}

希望这对你有用!!!