使用选择字段获取相关数据

时间:2018-01-14 22:23:20

标签: eloquent laravel-5.5

我进行查询,我必须连接两个表,因为我必须在连接表中执行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时,我还能做什么来访问第二个循环中的服务?

0 个答案:

没有答案