laravel中的查询-相当于左连接

ymdaylpp  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(327)

目前这是我的laravel查询

$response['appointMent'] = $this->appointment->where('user_id', Auth::guard('user')->user()->id)
    ->whereIn('status', array('Sched', 'Going', 'Request Appointment'))
    ->whereDate('set_date', '>', Carbon::now()->subDays(1))
    ->with(['company'])
    ->with(['applicant'])
    ->with(['job'])
    ->with(['user'])->get();

但不幸的是,我还想获取公司和用户表之间的连接数据,即公司的user\u id和用户的id
这是公司表:

和用户表

如何连接公司数组下的用户?

eyh26e7m

eyh26e7m1#

你需要像这样为公司和用户建立一种关系
公司模型

public function user()
{
   return $this->belongsTo(Company::class,'user_id');
}

你的问题就会变成

response['appointMent'] = $this->appointment->where('user_id', Auth::guard('user')->user()->id)
                ->whereIn('status', array('Sched', 'Going', 'Request Appointment'))
                ->whereDate('set_date', '>', Carbon::now()->subDays(1))
                ->with(['company.user','applicant','job'])->get();

现在用户关系将在公司内部
或者反过来就是用户模型

public function company()
{
   return $this->hasOne(User::class); //Or hasMany depends on your needs
}

然后以下查询将更改为

response['appointMent'] = $this->appointment->where('user_id', Auth::guard('user')->user()->id)
                ->whereIn('status', array('Sched', 'Going', 'Request Appointment'))
                ->whereDate('set_date', '>', Carbon::now()->subDays(1))
                ->with(['user.company','applicant','job'])->get();

相关问题