如何在Laravel 5.3中显示从数据库到刀片视图的多个图像?

时间:2017-07-07 17:04:19

标签: php laravel laravel-5.3

我在DB的“图像”列中有多个图像,我需要在以下位置显示所有图像:

@foreach(explode(',', $posts->images) as $images)
<div class="col-lg-2 col-md-2 col-sm-2">
    <a href="{{ URL::to('img/offers/'.$images)}}"
       class="portfolio-box">
        <img src="{{ URL::to('img/offers/'.$images)}}"
             class="img-responsive" alt="--">
        <div class="portfolio-box-caption">
            <div class="portfolio-box-caption-content">
            <span class="glyphicon glyphicon-zoom-in"
                  style="font-size: 80px"></span>
            </div>
        </div>
    </a>
</div> 
@endforeach

但它不起作用,因为链接显示如下:

http://localhost:8000/img/offers/["149939592986Dynamic-Web.png"

和下一张图片显示如下:

http://localhost:8000/img/offers/"149938949479Static-Web.png"]

现在,我要做什么来显示所有图像?

BD中的专栏显示为数组:

["149938949418Dynamic-Web.png","149938949479Static-Web.png"]
谢谢。

2 个答案:

答案 0 :(得分:1)

您的示例不起作用的原因是因为您正在爆炸json字符串。您需要做的是对其进行简单的解码,如下所示:

@foreach(json_decode($posts->images, true) as $images)
<div class="col-lg-2 col-md-2 col-sm-2">
    <a href="{{ URL::to('img/offers/'.$images)}}"
       class="portfolio-box">
        <img src="{{ URL::to('img/offers/'.$images)}}"
             class="img-responsive" alt="--">
        <div class="portfolio-box-caption">
            <div class="portfolio-box-caption-content">
            <span class="glyphicon glyphicon-zoom-in"
                  style="font-size: 80px"></span>
            </div>
        </div>
    </a>
</div> 
@endforeach

这将遍历所有图像并显示正确的字符串,如:

http://localhost:8000/img/offers/149939592986Dynamic-Web.png

答案 1 :(得分:0)

您拥有json个编码数据,因此您必须进行解码。所以, 您可以使用json_decode()提取图像文件名数组:

 $images = json_decode($posts->images,true);

在此之后,您可以使用简单的for循环来显示所有图像,

 @foreach($images as $image)
     <div>
          <--! Write code to display image -->
     </div>
 @endforeach