我进行查询,我必须连接两个表,因为我必须在连接表中执行where语句。
$locations = Location::join('location_tag', 'locations.id', '=', 'location_tag.location_id')
->join('tags', 'tags.id', '=', 'location_tag.tag_id')
->where('locations.cityslug', '=', $cityslug)
->where('tags.slug', '=', $tagslug)
->get();
在视图的后面,我想在循环中显示所有返回位置的名称。此外,我想返回服务的名称(服务与地点相关)。
@foreach($locations as $location)
{{$location->name}}
@foreach($location->services as $service)
{{@service->name}}
@endforeach
@endforeach
当我这样做时,会显示标签的名称而不是位置。原因是,表格位置和表格标记包含字段名称和 slug 。
因此我更新了查询并添加了一个select语句。
Location::join('location_tag', 'locations.id', '=', 'location_tag.location_id')
->join('tags', 'tags.id', '=', 'location_tag.tag_id')
->select('locations.name','locations.slug')
->where('locations.cityslug', '=', $cityslug)
->where('tags.slug', '=', $tagslug)
->get();
但是现在,我无法访问相关模型服务的信息。该地点没有服务。当我在查询中使用select时,我还能做什么来访问第二个循环中的服务?