在Laravel中的一个查询中组合两个关系

时间:2016-06-08 13:54:17

标签: laravel

我的一个模型包含以下内容:

public function from()
{
    return $this->belongsTo(Station::class, 'from_station_id');
}

public function to()
{
    return $this->belongsTo(Station::class, 'to_station_id');
}

为了使用它我使用的是with('to', 'from')方法。结果如下:

  

从“站点”中选择*,其中“站点”。(“1”)中的“id”

     

从“电台”中选择*,其中“电台”。('2')中的“id”

两个缓存查询一个用于“to”,一个用于“from”。目前有1条记录它们是“有用的”。但是将来他们会有很多重复的ID ..

Laravel是否提供组合这些的选项?

1 个答案:

答案 0 :(得分:2)

假设您需要通过关系(例如$model->from->first()$model->to->count())从模型中访问它们,您最好的选择是坚持使用2个查询。带有 where in 子句的查询并不重要,您可以另外缓存它们以加快速度。