【发布时间】:2018-07-13 15:40:15
【问题描述】:
我的上传表中有多个与vehicle_id相关的图像,就像这样的外键,
uploads table
id fileName vehicle_id
1 1.jpg 1
2 2.jpg 1
3 3.jpg 1
4 4.jpg 1
5 28.png 2
6 28.png 2
7 29.png 2
8 30.png 3
9 31.png 3
10 56.png 3
VehicleController中使用Eager loader的车辆表与图像表和数据图有多对多的关系,
$vehicles = Vehicle::with('uploads')->get();
return view('vechicles.index')->withVehicles($vehicles);
现在这些图像显示在车辆/index.blade.php 文件中
@foreach($vehicle->uploads as $upload)
<tr>
<td><a href="{{route('vechicles.show',$vehicle->id)}}"><img src="/images/{{ $upload->resized_name }}"></a></td>
</tr>
@endforeach
我的问题现在出现了,通过这种方式,我可以在表格中显示与正确 vehicle_id 相关的所有图像,但是,我只需要显示一张图像(匹配 vehicle_id) 就像上面那行的缩略图一样。那我该如何配置呢?实际上,我只需要在 index.blade.php 中打印一张图像即可与每个vehicle_id 相关联, 例如,这里有 4 张与vehicle_id 1 相关的图像。但我只需要打印降序或一张图像即可打印,并且与vehicle_id 2 等相同......怎么能做到这一点?
更新的用户模型
class Upload extends Model
{
public function vehicle()
{
return $this->belongsTo(Vehicle::class);
}
}
更新的车型
class Vehicle {
public function thumbnail() {
return $this->hasOne(Upload::class)->orderByDesc('id');
}
}
$vehicles = Vehicle::with('thumbnail')->get();
当前 Blade 文件
@if($vehicles)
@foreach($vehicles as $vehicle)
{{$vehicle->district}}
{{$vehicle->town}}
{{$vehicle->brand}}
{{$vehicle->model}}
<hr>
<tr>
@foreach($vehicle->thumbnail as $aaa)
<img src="/images/{{ $aaa->resized_name }}">
@endforeach
</tr>
@endforeach
@endif
【问题讨论】:
-
请发布
uploads关系。 -
请查看我更新的用户模型
标签: php laravel laravel-5.6