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)
尝试在模型中显式定义表名。它可能会起作用。但这当然不是一个完整的解决方案,只是使它起作用的一个技巧:D
protected $table = "institution_school";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |