Почему не выводится картинка в виде?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Maksim86
Сообщения: 13
Зарегистрирован: 2019.05.02, 10:15

Почему не выводится картинка в виде?

Сообщение Maksim86 » 2019.09.12, 11:11

Всем доброго времени суток! Делаю интернет-магазин на yii2. Пытаюсь вывести картинку в каталоге товаров, полный путь до картинки D:/Develop/eshop/frontend/uploads/not_found.jpg, как ни пробовал прописывать путь ничего не выходит, картинка не выводится. Подскажите пожалуйста, что я не так делаю

Код: Выделить всё

<div class="main-panel">
        <div class="inner-right-panel bgcolor">  
        <div class="inner-products-list bgcolor">
            <div><h2><?= $catalog[$id]->name ?></h2></div>
            <?php foreach ($products as $keyProduct_type => $product_type) : ?>                
                <div class="col-md-8 products">
                    <div class="row">
                        <div class="col-sm-4">
                            <div class="product">
                                <div class="product-img">
                                    <?php if(file_exists('D:/Develop/eshop/frontend/uploads/not_found.jpg')) : ?>                                                                                
                                    <img src='not_found.jpg' alt="my image">//Вариант1  Здесь я переместил файл в каталог eshop/frontend/order                                 
                                    <?php endif; ?>
                                <?php if(!isset($product_type->picture)) : ?>                                             
                                    <?= Html::img('D:/Develop/eshop/frontend/uploads/not_found.jpg') ?>//Вариант2
                                    <?php $domain = yii\helpers\Url::base(true);
                                    echo Html::img($domain.'/frontend/uploads/not_found.jpg', ['alt' => 'My']) ?>//Вариант3
                                    <?php else : ?>
                                    <?= Html::img('D:/Develop/eshop/frontend/uploads/' . "$product_type->picture") ?>
                                <?php endif; ?>
                                </div>
                                    <p class="product-title">
                                        <h3><?= Html::a(Html::tag('div', $product_type->name, ['class' => $product_type->id == $keyProduct_type ? 'product-item-active' :'inner-product-item']), ['/order/create', 'id'=> $keyProduct_type]) ?></h3>                                        
                                    </p>
                                    <p class="product-desc">Signature NYX cosmetics</p>
                                    <p class="product-price"><?= $product_type->price ?></p>
                                </div>
                            </div>
                        </div>
                    </div>
            <?php endforeach; ?>
        </div>
        </div>
    </div>

ge74d8
Сообщения: 18
Зарегистрирован: 2019.03.11, 16:41

Re: Почему не выводится картинка в виде?

Сообщение ge74d8 » 2019.09.12, 11:40

Для удобства переноса в продакшен пути лучше не хардкодить, а использовать относительные пути, в yii есть уже предопределенные пути, подробнее тут https://www.yiiframework.com/doc/guide/ ... pt-aliases

В вашем случае путь выглядел бы примерно так

Код: Выделить всё

\Yii::getAlias('@app/uploads/not_found.jpg');

someweb
Сообщения: 540
Зарегистрирован: 2017.03.09, 10:12

Re: Почему не выводится картинка в виде?

Сообщение someweb » 2019.09.12, 13:25

Изображение должно быть в папке web
Путь должен быть относительно базового url

Код: Выделить всё

Yii::getAlias('@web/...')
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.

Ответить