когда я извлекаю изображения из базы данных mysql, они не отображаются, потому что там более одного изображения. Мне нужно только показать первое изображение в каждом ряду - PullRequest
0 голосов
/ 12 июня 2019

Я получаю изображения из базы данных. Но проблема в том, что там есть несколько изображений под одним идентификатором.Мне нужно только 0-е изображение, где pro_mc_id = 2

https://imgur.com/VLMqvGJ

https://imgur.com/tgNCNnR

Я пытался поместить изображения в массив и получитьизображений.но у меня не было никакого успеха, потому что я не мог понять код

// Контроллер

public function read_data()
{
    $read = DB::select('SELECT * FROM `nm_product` WHERE pro_mc_id = 2 ');
    return view('test.box' , compact('read'));
}

// view

@foreach($read as $view_data)
        <div class="item">
            <section class="products">
                <div class="row row-clean">
                    <div class="a col-md-4">
                        <article>
                            <div class="info">
                                        <span class="add-favorite">
                                            <a href="javascript:void(0);" data-title="Add to favorites" data-title-added="Added to favorites list"><i class="icon icon-heart"></i></a>
                                        </span>
                                <span>
                                            <a href="#productid1" class="mfp-open" data-title="Quick wiew"><i class="icon icon-eye"></i></a>
                                        </span>
                            </div>
                            <div class="btn btn-add">
                                <i class="icon icon-cart"></i>
                            </div>
                            <div class="figure-grid">
                                <div class="image">
                                    <a href="#productid1" class="mfp-open">
                                        <img width="100" src="../public/assets/product/<?php echo $view_data->pro_Img ?>" />
                                    </a>
                                </div>
                                <div class="text">
                                    <h2 class="title h5">
                                        <a href="product.html">{{ $view_data->pro_title }}</a>
                                    </h2>
                                    <sub>{{ $view_data->pro_price }}</sub>
                                    <sup>{{ $view_data->pro_disprice }}</sup>
                                    <span class="description clearfix">Gubergren amet dolor ea diam takimata consetetur facilisis blandit et aliquyam lorem ea duo labore diam sit et consetetur nulla</span>
                                </div>
                            </div>
                        </article>
                    </div>
                </div>
            </section>
        </div>

@endforeach

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Попробуйте этот код. Надеемся, что это полезно, потому что функция разнесения возвращает массив

    <?php
     $images = explode("/**/", $view_data->pro_Img);
       foreach ($images as $image) {
         $url = "../public/assets/product/".$image;
        ?>
           <img width="100" src="{{$url}}" />
        <?php
      }
    ?>
0 голосов
/ 12 июня 2019

создать функцию, чтобы получить первое изображение

    function firstImage($seperator, $string){
    $separate = explode($seperator, $string);
    $extension = head($separate);

    return $extension ? $extension : false;
}

и использовать так:

<img width="100" src="../public/assets/product/{{firstImage("/**/", $view_data->pro_Img)}}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...