Laravel 4中的列模糊错误

时间:2015-07-10 01:50:21

标签: php mysql laravel

我在Laravel 4中有一个查询在列表中,我确实指定了'units.unit',但是我遇到了列模糊错误。

$unit = Unit::join('bookings','bookings.unit','=','units.unit')->where('bookings.id', '=', $id)->lists('units.unit', 'units.id');
  

SQLSTATE [23000]:完整性约束违规:1052 Champ:'unit'dans字段列表est ambigu(SQL:从unit选择unitsidunits内部联接bookings位于bookingsunit = unitsunit其中bookingsid = 22)

哪里出错?

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

$unit = Unit::join('bookings', 'bookings.unit', '=', 'units.unit')
            ->where('bookings.id', $id)
            ->select(
                'units.id',
                'units.unit',
                'bookings.id as bid',
                'bookings.unit as bunit'
            )
            ->lists('units.unit', 'units.id');

答案 1 :(得分:0)

显然,该库中存在错误。它似乎在将查询转换为本机sql时删除了表前缀'unit'。

select unit,... // ambiguity介于units.unit和bookings.unit列

之间

人们会期望它生成如下声明:

从...中选择units.unit,units.id