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

时间:2014-11-14 13:48:36

标签: laravel laravel-4 eloquent

我有四张桌子

  id
  city
  state_id

 id
 name

City_Vendor

 id
 vendor_id
 city_id

供应商

 id 
 name

现在,如果我这样做,我会得到城市和州名,但不是州名

   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 个答案:

答案 0 :(得分:1)

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

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

在上面的代码中,您将显示一个州名为

的供应商城市

而不是:

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

你应该使用:

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