Laravel 4“Table'database.teches'不存在”

时间:2013-12-30 03:34:50

标签: laravel laravel-4

不确定为什么迁移正在寻找'teches'而不是真正的表名'techs'??

文件:TechsTableSeeder.php

class TechsTableSeeder extends Seeder {

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

    Tech::create(
        [
        'name'=>'technology',
        'description'=>'...',
        'year'=>'2014'
        ]);

}

} 

在php artisan db:seed --class =“TechsTableSeeder”中,我在终端中收到以下错误:

  

[照亮\数据库\ QueryException]
  SQLSTATE [42S02]:找不到基表或视图:1146表   'database.teches'不存在(SQL:插入techesname,   descriptionyearupdated_atcreated_at)值(技术,   ...,2014,2013-12-30 03:23:39,2013-12-30 03:23:39))

不确定为什么迁移正在寻找'teches'而不是真正的表名'techs'??

模型Tech.php确实存在,并通过php artisan生成自动生成:model Tech如下:

class Tech extends Eloquent {
    protected $guarded = array();

    public static $rules = array();
}

2 个答案:

答案 0 :(得分:5)

它尝试将表名放在复数形式中。

添加

protected $table = 'tech';

在您的模型类Tech

答案 1 :(得分:0)

安东尼奥是对的,顺便说一句,如果它适用于模型本身,你可以用这种方式格式化你的播种机:

class TechsTableSeeder extends Seeder {

  public function run()
  {
    $techs = [

    ];

    DB::table('techs')->insert($techs);
  }

}

我种子时总是喜欢这种方法。