我在Laravel 4中建立了以下多对多关系:
class SampleType extends Eloquent {
public function intake() {
return $this->belongsToMany('Intake', 'tbl_samples', 'Sample Type', 'Animal ID');
}
}
然而,当我回显SampleType::find(2)->intake;
时,由于“样本类型”和“动物ID”中的空格,我得到以下MySQL错误。
SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'tbl_samples.Animal'(SQL:选择tbl_intake
。*,tbl_samples
。Sample
为{ {1}},as
。tbl_samples
Animal
来自as
tbl_intake
tbl_samples
tbl_intake
Animal ID
。tbl_samples
= {{ 1}}。Animal ID
其中tbl_samples
。Sample Type
=?)(绑定:数组(0 => 2,))
奇怪的是,键在WHERE和ON部分工作正常,但在SELECT部分中断,它们似乎触发AS别名。
如果我用下划线替换空格,它工作正常,但我更喜欢使用空格,因为列名在前端回显。任何保持我的空间完整的方法,或者我是否需要在模型中使用下划线并稍后将其切换出来?提前感谢任何提示。
答案 0 :(得分:0)
我talked to Taylor关于它。他提出了一个很好的观点,即使用带有空格的列名称不能与Eloquent一起使用,因为您无法通过$ result->字段访问模型上的字段。毕竟我没有空间!在我将列标题回显到前端之前,将切换到下划线并将其切换出来。