Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel联接查询不适用于4个表_Php_Laravel - Fatal编程技术网

Php Laravel联接查询不适用于4个表

Php Laravel联接查询不适用于4个表,php,laravel,Php,Laravel,我有四张桌子 表名:诊所 字段:clinicID、clinicName 表名:位置 Fileds:locationID、clinicID、locationname 表名称:服务 字段:ServiceId、ServiceName 表名:LocationServices 字段:locationServiceID、locationID、ServiceId 我的要求是,当我通过clinicID时,我需要检索相应的诊所服务名称,可能不止一个 但当我尝试连接查询时,它不起作用 下面是我在控制器中的代码 p

我有四张桌子

表名:诊所

字段:clinicID、clinicName

表名:位置

Fileds:locationID、clinicID、locationname

表名称:服务

字段: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]);

    }
参考资料可能对你有帮助

多连接


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

public function locations()
 {
    return $this->belongsTo('App\Models\Locations','clinicID','clinicID');
 }
位置
模型中,添加

 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;
    }
  }  
}

请与我们分享您的模型。您如何定义实体之间的关系?
$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;
    }
  }  
}