需要laravel / query builder master的帮助!试图过滤复杂的关系:(

时间:2017-05-03 22:27:39

标签: mysql laravel eloquent

表关系

订单< - 有很多 - >的 orderdaytimes orderdaytimes < - belongsToMany - > 商店(数据透视表名称:order_day_time_stores)

给定值&键

  1. 订单:包含一个名为“ supplier_id ”的字段
  2. 订单日期:包含字段“日期
  3. order_day_time_stores :数据透视表,包含“ user_id ”和“ store_id
  4. 问题

    鉴于“ supplier_id”,“日期”和“ store_id ”,我想找出“order_day_time_stores”数据透视表中哪些记录符合这些条件。

    有人可以告诉我应该如何构建查询吗?

    谢谢heeeeap:3

1 个答案:

答案 0 :(得分:0)

你的问题可能会更好。您可能希望发布完整的模型和/或迁移。

根据我的理解,这可能是您正在寻找的:

假设你有模型Store,OrderDayTime和Order。 在商店模型中,我们假设您与OrderDayTime的关系名为order_day_times。 此外,在OrderDayTime模型中,与Order的关系命名为orders。

$result = Store::find(store_id)
                 ->order_day_times->where('date', date)
                 ->whereHas('orders', function ($q) use (supplier_id) {
                     $q->where('supplier_id', supplier_id);
                 })->with('orders')
                 ->get();