Вопрос: Laravel 4 «Таблица« database.teches »не существует»


Не знаете, почему миграция ищет «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", я получаю следующую ошибку в терминале:

[Осветите \ Database \ QueryException]
  SQLSTATE [42S02]: базовая таблица или представление не найдено: 1146 Таблица   'database.teches' не существует (SQL: insert into teches ( name,    description, year, updated_at, created_at) значения (технология,   ..., 2014, 2013-12-30 03:23:39, 2013-12-30 03:23:39))

Не знаете, почему миграция ищет «teches», а не имя «techs» реального стола?

Модель Tech.php существует и автоматически генерируется через php artisan generate: model Tech следующим образом:

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

    public static $rules = array();
}

4


источник


Ответы:


Он пытается поместить имя таблицы во множественное число.

Просто добавь

protected $table = 'tech';

В вашем классе класса Tech


5



Антонио прав, между прочим, если он работает с самой моделью, вы можете форматировать сеялку таким образом:

class TechsTableSeeder extends Seeder {

  public function run()
  {
    $techs = [

    ];

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

}

Я всегда предпочитаю этот метод, когда семя.


0