Задать вопрос
@Absky

Как вывести изображение с помощью yii2 images в основном приложении загруженное в модуле?

Добрый день,

делаю загрузку и вывод изображений в постах с помощью https://github.com/CostaRico/yii2-images.
Реализовал загрузку изображения пользователем из модуля, и на уровне этого модуля(личного кабинета) изображение отображается корректно. при выводе же в основном приложении, в списке постов, отображается значок битой ссылки.
Я так подозреваю, что абсолютный путь из модуля не тождественен абсолютному пути из приложения.

Как основное приложение заставить обращаться по пути модуля? Может кто-то сталкивался.

Как я выводил изображение из модуля в основное:

Контроллер записи:
class ProductController extends AppController{

    public function actionView($id){
        //$id = Yii::$app->request->get('id');
        $product = Product::findOne($id);

		if(empty($product)){
			throw new \yii\web\HttpException(404, 'Такой страницы не существует');
		}

        $hits = Product::find()->where(['hit' => '1'])->limit(3)->all();
        
        $this->setMeta('Maskota | '. $product->title, $product->keywords, $product->description);
        return $this->render('view', compact('product', 'hits'));
    }
}


Модель:
namespace app\models;
use yii\db\ActiveRecord;


class Product extends ActiveRecord{
    public function behaviors()
    {
        return [
            'image' => [
                'class' => 'rico\yii2images\behaviors\ImageBehave',
            ]
        ];
    }

    public static function tableName(){
        return 'product';
    }

    public function getCategory(){
        return $this->hasOne(Category::className(), ['id' => 'category_id']);
    }
}


Вид(вот тут я извратился(см.комменты)):
use yii\helpers\Html;
use app\models\Category;
//подключаю модель продукта
use app\models\Product;
//подключаю модель продукта в модуле, где описывался личный кабинет, где все сделано в соответствии с документацией yii2-images и работает корректно
use app\modules\products\models\Products;
?>
<!-- cart_max -->
<div class="row">
	<div class="col-12 col-md-7">
		<ul class="cart_max">
	<?php 
//В Products ищу соответствующую $product->id запись($product - это $product = Product::findOne($id);, описан в actionView выше)

	   $model = Products::findOne($product->id);
//к $model применяю функцию yii2-images getImage(); и получаю нужное изображение, вроде бы, норм
            $imageTitle = $model->getImage();
           ?>
//Вызов url и подстановка в img. Полученное url ведет к "/yii2images/images/image-by-item-and-alias?item=Products9&dirtyAlias=d1a282a7bb-1.png", к этому же пути ведет и изображение в модуле при вызове функции, но изображение отображается.
<li><?=Html::img("" . $imageTitle->getUrl(), ['alt' => $product->title]) ?></li>
...
  • Вопрос задан
  • 672 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@Absky Автор вопроса
Вопрос закрыт, я все сделал правильно, просто в запаре в папке хранище изображений уже задолбанный почистил изображения. Загрузил новое - все работает. Оформляя правки к вопросу заметил что имя изображения странное.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы