Laravel 4 - 关键领域的空间破坏了belongsToMany

时间:2013-10-03 18:23:43

标签: laravel many-to-many laravel-4 space

我在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_samplesSample为{ {1}},astbl_samples Animal来自as tbl_intake tbl_samples tbl_intake Animal IDtbl_samples = {{ 1}}。Animal ID其中tbl_samplesSample Type =?)(绑定:数组(0 => 2,))

奇怪的是,键在WHERE和ON部分工作正常,但在SELECT部分​​中断,它们似乎触发AS别名。

如果我用下划线替换空格,它工作正常,但我更喜欢使用空格,因为列名在前端回显。任何保持我的空间完整的方法,或者我是否需要在模型中使用下划线并稍后将其切换出来?提前感谢任何提示。

1 个答案:

答案 0 :(得分:0)

talked to Taylor关于它。他提出了一个很好的观点,即使用带有空格的列名称不能与Eloquent一起使用,因为您无法通过$ result->字段访问模型上的字段。毕竟我没有空间!在我将列标题回显到前端之前,将切换到下划线并将其切换出来。