php – Laravel播种错误 – 错误的表名

前端之家收集整理的这篇文章主要介绍了php – Laravel播种错误 – 错误的表名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当我尝试为数据库播种时,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,2005,2014-07-04 19:38:41,2014-07-04 19:38:41))

我尝试删除数据库,然后再次迁移和播种.
我尝试用“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');
        });
    }    
}
最佳答案
尝试在模型中明确定义表名.它可能会奏效.但它当然不是一个完整的解决方案,只是让它成功的黑客攻击:D

protected $table = "institution_school";
原文链接:https://www.f2er.com/mysql/433207.html

猜你在找的MySQL相关文章