为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel Join 查询不适用于 4 个表

Laravel Join 查询不适用于 4 个表

PHP
精慕HU 2022-10-09 17:42:56
我有 4 张桌子表名称:诊所字段:诊所ID,诊所名称表名:位置归档:位置 ID、诊所 ID、位置名称表名:服务字段:ServiceId、ServiceName表名:LocationServices字段:locationServiceID、locationID、ServiceId我的要求是,当我通过 ClinicID 时,我需要检索相应的诊所服务名称,可能不止一个。但是当我尝试加入查询时不起作用以下是我在控制器中的代码 public function showClinic($id)    {        $clinic = Clinic::find($id);        $locations = Location::where('clinicID', $id)->get();        $locationsservices=\App\Clinic::with('locations');        var_dump($locationsservices);        die();        return view('clinic.show')->with(['locations' =>  $locations  ,'clinic'=>$clinic]);    }
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您可以使用关系获取此详细信息。在Clinic模型中,添加


public function locations()

 {

    return $this->belongsTo('App\Models\Locations','clinicID','clinicID');

 }

在Locations模型中,添加,


 public function location_services()

 {

    return $this->hasOne('App\Models\LocationServices','locationID','locationID');

 }

在LocationServices模型上,


 public function services()

 {

    return $this->hasOne('App\Models\Services','ServiceId','ServiceId');

 }

您可以通过以下方式获得结果,


$clinic_info = Clinic::find($id);

if(isset($clinic_info->locations))

{

  if(isset($clinic_info->locations->location_services))

  {

    if(isset($clinic_info->locations->location_services->services))

    {

      echo $clinic_info->locations->location_services->services->ServiceName;

    }

  }  

}


查看完整回答
反对 回复 2022-10-09
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

参考Maybe HelpFull为您服务

多连接

$data = DB::table('city')
       ->join('state', 'state.state_id', '=', 'city.state_id')
       ->join('country', 'country.country_id', '=', 'state.country_id')
       ->select('country.country_name', 'state.state_name', 'city.city_name')
       ->get(); 
       return view('join_table', compact('data'));


查看完整回答
反对 回复 2022-10-09
  • 2 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号