Laravel is throwing this error when I try to seed the database.
My table is institution_school and not institution_schools, what Laravel reports in the error.
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'eesdatabase.inst
itution_schools' doesn't exist (SQL: insert into `institution_schools` (`sc
hool_id`, `instituion_id`, `energy_id`, `year`, `updated_at`, `created_at`)
values (38, 1, 1, 2005, 2014-07-04 19:38:41, 2014-07-04 19:38:41))
I try to drop database and again migrate and seed. I try to reset Laravel cache with "php artisan:cache clear"
Does anyone know how to fix this? Thanks
<?php
class InstitutionSchool extends Eloquent {
protected $table = "institution_school";
protected $guarded = array('id');
public function school() {
return $this -> belongsTo('School');
}
public function institutio() {
return $this -> belongsTo('Institution');
}
public function energy() {
return $this -> belongsTo('Energy');
}
}
?>
<?php
class InstitutionSchoolTableSeeder extends DatabaseSeeder {
public function run() {
DB::table('institution_school') -> delete();
$faker = $this -> getFaker();
$schools = School::all();
$institutions = Institution::all();
$energies = Energy::all();
foreach ($schools as $school) {
for ($i = 0; $i < rand(1, 5); $i++) {
$year = $faker -> randomNumber(2000, 2015);
InstitutionSchool::create(array(
'school_id' => $school -> id,
'instituion_id' => 1,
'energy_id' => 1,
'year' => $year));
}
}
}
}
?>
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateInstitutionSchoolTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('institution_school', function(Blueprint $table)
{
$table->increments('id');
$table->integer('institution_id')->unsigned();
$table->integer('school_id')->unsigned();
$table->string('year');
$table->string('other_source_name')->nullable();
$table->integer('energy_id')->unsigned()->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('institution_school', function(Blueprint $table)
{
Schema::drop('institution_school');
});
}
}
Try explicitly defining table name in your Model. It might work. But it is of course not a complete solution, just a hack to make it work :D
protected $table = "institution_school";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With