【问题标题】:Combine two relationships in one query in Laravel在 Laravel 的一个查询中组合两个关系
【发布时间】:2016-06-08 13:54:17
【问题描述】:

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

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') 方法。结果如下:

select * from "stations" where "stations"."id" in ('1')

select * from "stations" where "stations"."id" in ('2')

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

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

【问题讨论】:

    标签: laravel


    【解决方案1】:

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

    【讨论】:

    • 我现在的情况不就是这样吗?还是我误会了?
    • 是的,就像我建议的那样您最好的选择是坚持使用 2 个查询
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2018-12-11
    • 2021-08-08
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多