Php Laravel种子设定错误-表名错误

Php Laravel种子设定错误-表名错误,php,mysql,laravel-4,seeding,Php,Mysql,Laravel 4,Seeding,当我尝试为数据库设定种子时,Laravel抛出了这个错误 我的表格是institution_school,而不是institution_school,Laravel在错误中报告了这一点 [Illuminate\Database\QueryException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'eesdatabase.inst itution_schools' doesn't exist (SQL: inse

当我尝试为数据库设定种子时,Laravel抛出了这个错误

我的表格是institution_school,而不是institution_school,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))
我尝试删除数据库,然后再次迁移和种子。 我尝试用“php artisan:cache clear”重置Laravel缓存

有人知道如何解决这个问题吗? 谢谢



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

protected $table = "institution_school";

Laravel假设您将SQL表命名为小写和复数,并且模型是单数形式的PascalCase。您可能希望重命名表格以将“s”包含在您的
机构可选择的播种机中
您有以下功能:

DB::table('institution_school')->delete()

应该是:

DB::table('institution_school')->truncate()


使用
->delete()
该表将消失,并将抛出错误。使用
->truncate()
该表将被清空,但仍然存在,因此您可以对其进行种子设定。

现在使用code,效果会更好。但老实说,我没有看到任何错误。显式表声明看起来不错。我只想指出'Schema::drop('institution_school');`不必在
Schema::table('in…
)中,但这不是导致错误的原因。不明白-@Aleksandar,您的模型中已经有了它。解决方案如何?在粘贴它之前对它进行了注释。在其他表上,我没有该代码,我认为它并不重要。这是解决方案!受
保护的$table=“institution_school”
piece应该覆盖它。因为这是一种包含额外数据的透视表,所以用“s”命名没有多大意义。
protected $table = "institution_school";