2015-07-10 48 views
2

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

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

SQLSTATE [23000]:完整性约束违规:1052冠军: '单元' 丹斯字段列表EST ambigu(SQL:选择unitunitsidunits内上bookings加入bookingsunit = unitsunit其中bookingsid = 22)

哪里出错?

回答

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'); 
+0

使用'选择()'真正解决这个唯一的方法? – IIllIIll

+0

这取决于你可以使用' - > get(['name','username'])'。 –

+1

我只是不想输入列名,但它绝对有效。谢谢! – IIllIIll

0

显然,该库存在bug。它似乎删除了表前缀'单元',同时将您的查询翻译为原生sql。

选择单元,... //歧义是units.unit和bookings.unit列之间

一个希望它如下生成声明:

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