我的数据库中有我的图像path
,现在,我正在尝试将图像放入我的html网格中。但是当我尝试获取图像时,我收到错误
此集合实例上不存在属性[path]。
但是,我的数据库中的表中有路径属性。是不是我的模特出错了?我的模型似乎对我而言。无论如何,我在这里做什么,拜托?
感谢您的关注
HTML
<figure>
<div class="snipcart-item block">
<div class="snipcart-thumb">
<a href="{{ route('product.view', $product->slug)}}"><img src="{{$product->images->path}}" alt=" " class="img-responsive" /></a>
<p>{{$product->name}}</p>
<h4>GH₵ {{ number_format($product->price,2) }} </h4>
</div>
<div class="snipcart-details top_brand_home_details">
<form action="#" method="post">
<fieldset>
</fieldset>
</form>
</div>
</div>
</figure>
图片
public function products()
{
return $this->belongsTo(Product::class);
}
Product_images
public function images()
{
return $this->hasMany(Image::class);
}
答案 0 :(得分:2)
你需要制作一个foreach
,因为它会给你一个集合。
因此,尝试将其显示为:
@foreach($product->images as $image)
@if($image->path)
<img src="{{ $image->path }}" alt=" " class="img-responsive" />
@else
<p>No image to display!</p>
@endif
@endforeach
希望这会对你有帮助!
答案 1 :(得分:1)
这是因为产品型号有很多图像。 为了达到路径属性,您应该这样做:
@foreach($product->images as $image)
{{$image->path}}
@endforeach
或者在您的产品型号中执行此操作并更改数据库结构
public function image()
{
return $this->hasOne(Image::class);
}
我希望它有所帮助。
答案 2 :(得分:0)
如果您的路径没有任何问题,以下是在Laravel刀片模板中显示图像的正确方法。
<img src="{{URL::asset('directory/name_of_image_file.file_format')}}">
答案 3 :(得分:0)
您在数据库path
中没有字段images
您的代码必须是:
<img src="{{$product->images->[you field in Db images]}}" alt=" " class="img-responsive" />
答案 4 :(得分:0)
<a href="{{ route('product.view', $product->slug)}}">
<img src="{{$product->images->first()->path}}" alt=" " class="img-responsive" />
</a>
$product->images
是一个集合,您需要从集合中获取图像。现在我已经使用了first()
来获取第一个图像,你可能希望根据你的场景循环遍历这个集合。您可能希望阅读有关已撰写here
答案 5 :(得分:0)
<强> HTML 强>
@foreach($products as $product)
<figure>
<div class="snipcart-item block">
<div class="snipcart-thumb">
<a href="{{ route('product.view', $product->slug)}}"><img src="{{$product->images->first()->path}}" alt=" " class="img-responsive" /></a>
<p>{{$product->name}}</p>
<h4>GH₵ {{ number_format($product->price,2) }} </h4>
</div>
<div class="snipcart-details top_brand_home_details">
<form action="#" method="post">
<fieldset>
</fieldset>
</form>
</div>
</div>
</figure>
@endforeach