2014-11-14 66 views
0

我有四个表如何使用此关系设置从另一个表中获取数据?

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(); 
相关问题