2014-11-14 64 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(); 
相關問題