【发布时间】:2015-02-21 02:20:56
【问题描述】:
我在将表格设置为雄辩的模型时遇到了一些问题。我以前做过很多次,但由于某种原因,这似乎不起作用。我在这里完全错过了什么吗?
型号:
class F5Host extends Eloquent {
protected $guarded = array();
protected $table = 'f5hosts';
public function Environments() {
return $this->belongsTo('Environment');
}
}
用法:
$host = new F5Host;
return $host->all();
错误:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'myapp.f5_hosts' doesn't exist (SQL: select * from `f5_hosts`)
更新: 我知道 Laravel 有一个功能,可以在使用模型确定数据库表名时将 CamelCase 转换为 snake_case。但是 $table 变量应该覆盖它。我注意到,当突然将类名更改为“F5host”时,覆盖开始起作用了。
【问题讨论】:
-
确保
myapp数据库包含f5_hosts表 -
模型设置看起来不错。我不确定,但你可以试试
F5Host::all()而不是$host = new F5Host; return $host->all(); -
@Razor f5_hosts 不存在,这就是我尝试将名称更改为“f5hosts”的原因
-
@lukasgeiter 返回相同的结果
-
好的。你确定这条线会导致错误吗?如果您将其删除/注释掉,它会消失吗?