2014-11-14 3 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(); 
Смежные вопросы