结合多列来做一个foreach

时间:2017-12-11 11:05:52

标签: php laravel laravel-5

我的数据库中有5列。以下是列的名称:

  • 促销1
  • promo2
  • promo3
  • promo4
  • promo5

我想将这些列组合起来,以便能够在我看来制作一个foreach。

我试过了:

$promos = Building::select('promo1', 'promo2', 'promo3', 'promo4', 'promo5')->where('id', $card->id)->get()->toArray();

在我看来:

@foreach($promos as $promo)
    <span>{{ $promo['promo1'] }}</span>
@endforeach

但我的foreach只有一个结果。而不是5.我只能逐个选择($ promo [&#39; promo1&#39;],$ promo [&#39; promo2&#39;])所以做一个foreach无济于事

有办法吗?非常感谢你

2 个答案:

答案 0 :(得分:0)

当您使用get()方法you're getting a collection时。使用find()方法获取对象而不是集合:

$promos = Building::select('promo1', 'promo2', 'promo3', 'promo4', 'promo5')->find($card->id)->toArray();

然后你就可以迭代促销:

@foreach ($promos as $promo)
    <span>{{ $promo }}</span>
@endforeach

答案 1 :(得分:0)

首先获取构建对象

$building = Building::select('promo1', 'promo2', 'promo3', 'promo4', 'promo5')->findOrFail($card->id);

然后循环播放促销

@foreach ($building->getAttributes() as $key => $value)
    <span>{{ $key }} : {{ $value }}</span>
@endforeach

注意:在这里使用$key是可选的

相关问题