Laravel 中的查询 - 相当于 left join

目前这是我的 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_id和用户的id

这是表公司表:

http://img4.mukewang.com/645da479000197b806600216.jpg

和用户表

http://img2.mukewang.com/645da48b0001a6fc06590249.jpg

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



江户川乱折腾
浏览 180回答 1
1回答

交互式爱情

您需要像这样为公司与用户建立关系公司模式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();
打开App,查看更多内容
随时随地看视频慕课网APP