Laravel数据库连接:从蛇案例中选择数据库名称

时间:2014-03-16 22:43:59

标签: php mysql laravel laravel-4

我开始学习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中的东西正在改变数据库和表名。

有谁知道为什么会这样,我怎么能阻止它?我不想重命名数据库或表格名称,因为虽然这可能让我在测试中,但它在实践中并不是一个可行的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果没有显式定义表,则使用此行为。在ZipCodeDetails类中,您可以设置此模型将使用的表名。

class ZipCodeDetails extends Eloquent 
{
          protected $table = 'zipCodesDetails';
}