【发布时间】:2019-06-21 11:21:38
【问题描述】:
参考:Fetch first image from foreign key table 但这次是在 Laravel。
我开始使用 Laravel,我想从每个帖子中获取第一张图片,并在我的刀片中展示这些图片。
$secondpost = DB::table('posts')
->orderBy('id', 'desc')
->skip(1)
->take(8)
->get();
foreach ($secondpost as $spost)
$secondph = DB::table('post_images')
->select('filename')
->where('post_id', $spost->id)
->limit(1)
->get()
->pluck('filename');
return view ('pages.index', compact('firstp', 'fph', 'secondpost', 'secondph'));
<div class="row">
@foreach ($secondpost as $secondp)
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-6 post-ab">
<div class="row">
@foreach ($secondph as $sph);
<img src="{{url($sph)}}" class="imgpost" alt="">
@endforeach
<div class="bottomleft">
<p class="ab-desc">{{$secondp->marca}} {{$secondp->model}}</p>
<p class="ab-desc">{{$secondp->pret}} Eur</p>
</div>
</div>
</div>
@endforeach
</div>
此代码只为每个 img src 加载一张图片。 post_id 是posts表id的外键。
【问题讨论】:
-
“第一张图片”是什么意思?链接到帖子的第一张图片?您可以尝试按“created_at”列对图像进行降序排序,然后仅选择第一个结果。
-
在您的代码中,$secondph 的值在每个循环中不断变化。您只能从循环的最后一次迭代中获得值。您应该将每个循环中的值存储到一个数组中并将该数组传递给刀片。