【发布时间】:2020-03-25 20:16:32
【问题描述】:
我想为帖子列表中的每个条目显示一张图片。图像的名称是唯一的文件名。它们都保存在数据库(MySQL)表中。每个帖子有多个图像。代码工作正常。除非有没有图像文件名的帖子。这是一种可能的情况,但我无法让代码正常工作。如果帖子没有现有文件名,我想显示默认文件名。 这是我的代码:
图像逻辑:
/**
* Get a vehicle's top or main image data from the image table
*/
public function topImage($id)
{
$image = Vehiclefulldataimage::where('vehiclefulldatas_id', $id)
->orderBy('id', 'ASC')->first();
return $image;
}
这是刀片视图,帖子:
@if (count($posts) > 0)
@foreach($posts as $post)
<?php $imageFilename = (new \App\Models\Logic\Images)->topImage($post->id); ?>
<!--Item-->
<li>
<div class="preview">
@if ($imageFilename = 0)
<img src="{{ asset('images') . '/' . 'defaultImage.jpg' }}" alt="No photo">
@else
<img src="{{ asset('images') . '/' . $imageFilename->disk_image_filename }}" alt="{{ ucfirst($imageFilename->caption) . ' | ' . $post->title }}">
@endif
</div>
<div class="desc">
<h3>{{ str_limit($post->title, 100, '...') }}</h3>
</div>
</li>
<!--/Item-->
@endforeach
@endif
这是我收到的错误消息: “试图获取非对象的属性”
【问题讨论】:
-
试试这个
$image = Vehiclefulldataimage::where('vehiclefulldatas_id', $id)->first(); if(!$image){ $image = 'path/to/your/default/image' }
标签: laravel