提问者:小点点

如何使用此关系设置从另一个表中抓取数据?


我有四张桌子

城市

  id
  city
  state_id

状态

 id
 name

City_Vendor

 id
 vendor_id
 city_id

供应商

 id 
 name

现在,如果我做这样的事情,我得到城市和state_id,但不是州名

   Vendor::with('cities')->get();

这是我所做的,以获得在我看来并不理想的州…

              <?php foreach($vendor['cities'] as $state): ?>
                  @if($state['state_id'] == $city['state_id'])
                    {{$state['state']['state']}}
                    <?php break; ?>
                  @endif
              <?php endforeach;?>

我也希望得到状态名称,而不仅仅是state_id。做这件事最好的方法是什么?


共1个答案

匿名用户

假设你们有正确的关系,应该是这样的:

@foreach ($vendor->cities as $city)
  {{ $vendor->city->city}}, {{$vendor->city->state->name}}
@endforeach

在上面代码中,您显示了一个具有州名的供应商城市

而不是:

Vendor::with('cities')->get();

您应该使用:

Vendor::with('cities.state')->get();