Laravel BelongsToMany数据透视表:如何获取所选列

时间:2014-07-30 08:36:19

标签: php laravel eloquent

在通过数据透视表查询时,想要获取所选列。以下是我的情景。 我有3张桌子,

  • 优惠券
  • coupon_cities
  • 城市

关系详情如下。

class Coupon extends Eloquent {

    public function cities(){

        return $this->belongsToMany('City', 'coupon_cities', 'coupon_id', 'city_id');
    }
}

当我查询

Coupon::with('cities')

它返回优惠券行的每个条目的城市表的所有列的数组

1 个答案:

答案 0 :(得分:0)

唯一的方法就是:

$coupon = Coupon->first();
$coupon->cities()->get([your columns here]);

通常你会像下面这样做:

Coupon::with(['cities' => function ($q)
{
  $q->select('column', 'column2' ...);
}

然而,它不适用于belongsToMany关系 - > https://github.com/laravel/framework/pull/4440