Laravel播种错误 - 错误的表名

Ale*_*lic 5 php mysql seeding laravel-4

当我尝试为数据库播种时,Laravel会抛出此错误.

我的表是INSTIT_school而不是institution_schools,Laravel在错误中报告了什么.

 [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))
Run Code Online (Sandbox Code Playgroud)

我尝试删除数据库,然后再次迁移和播种.我尝试用"php artisan:cache clear"重置Laravel缓存

有谁知道如何解决这一问题?谢谢

<?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');
        });
    }    
}
Run Code Online (Sandbox Code Playgroud)

Jav*_*ior 5

尝试在模型中显式定义表名。它可能会起作用。但这当然不是一个完整的解决方案,只是使它起作用的一个技巧:D

protected $table = "institution_school";
Run Code Online (Sandbox Code Playgroud)