我开始学习Laravel。我已经成功完成了网站上的示例说明,现在我尝试了第二次尝试并遇到了问题。
我尝试连接到名为zipCodes
的数据库,并且有一个名为zipCodeDetails
的表。
在我的Laravel项目中,我有一个包含以下代码的模型:
<?php
class ZipCodeDetails extends Eloquent {}
在我的routes.php
文件中,我有以下代码:
Route::get('zipCodes', function (){
$zipCodes = ZipCodeDetails::all();
return View::make('zipCodes')->with('zipCodes', $zipCodes);
});
我遇到的错误是当我尝试加载网址时:
http://localhost:8888/zipCodes
在我的浏览器中,我收到了错误代码:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'zipcodes.zip_code_details' doesn't exist (SQL: select * from `zip_code_details`)
在我的代码中没有写任何内容,我将数据库zipCodes
定义为zipcodes
,或将表zipCodesDetails
定义为zip_code_details
。 laravel中的东西正在改变数据库和表名。
有谁知道为什么会这样,我怎么能阻止它?我不想重命名数据库或表格名称,因为虽然这可能让我在测试中,但它在实践中并不是一个可行的解决方案。
谢谢!
答案 0 :(得分:0)
如果没有显式定义表,则使用此行为。在ZipCodeDetails类中,您可以设置此模型将使用的表名。
class ZipCodeDetails extends Eloquent
{
protected $table = 'zipCodesDetails';
}