代码之家  ›  专栏  ›  技术社区  ›  XxnumbxX

Laravel对另一个表有关系查询

  •  0
  • XxnumbxX  · 技术社区  · 3 年前

    我有一个用户模型和一个时间表模型。我试着在拉拉威尔中使用关系,而不是加入。是否可以返回所有轮班时间为'x'的用户?我想返回所有在特定日期范围之间有转换的用户。

    $users = User::select('name','location','id AS user_id')->has('shift')>where('schedule.startTime', $start)->get();
    

    这显然不起作用,因为日程模型中存在开始列。

    在我的 用户模型 我有:

    public function shift() {
        return $this->hasMany('App\Models\Schedule');
    }
    

    在我的 时间表模型 我有:

    public function user()
    {
        return $this->belongsTo('App\Models\User', 'user_id', 'id');
    }
    

    在我的时间表控制器中,我使用了以下有效的方法,但我需要通过where子句缩小我的结果范围:

    $users = User::select('name','location','id AS user_id')->has('shift')->get();
    

    任何帮助都将不胜感激。

    1 回复  |  直到 3 年前
        1
  •  2
  •   Adam Nottingham    3 年前

    看看 eager loading

    下面这样的东西应该能起到作用。

    User::whereHas('schedule', function ($query) {
        return $query->where('startTime', $start);
    })->get();
    
    推荐文章