Хочу сделать галерею на основе pjax.
Контроллер:
public function actionGallery(){
$model = Gallery::find()->where(['thumbnail' => '1'])->orderBy(['position' => SORT_DESC])->all();
return $this->render('gallery', ['model' => $model]);
}
public function actionImage(){
$request = Yii::$app->request;
$image = Gallery::findOne($request->get('id'));
return $this->renderPartial('image', ['image' => $image]);
}
Вид Gallery.php:
<?php
use yii\helpers\Html;
use yii\widgets\Pjax;
?>
<div class="row">
<?php
foreach ($model as $thumbnails) {
pjax::begin();
?>
<div class="">
<?php
echo Html::a(Html::img(Yii::$app->params['imagesUrl'] . 'thumbnails/' . $thumbnails->fileName,
['id' => $thumbnails->id,
'data' => ['method' => 'post'],
'alt' => 'preview',
'class' => 'img-responsive col-md-4 col-lg-3 col-sm-6 col-xs-12 imgBlock']),
['image', 'id' => $thumbnails->id], ['data-pjax' => '#' . $thumbnails->id]);
?>
</div>
<?php
pjax::end();
}
?>
</div>
Вид image.php:
<?php
use yii\helpers\Html;
echo Html::img(Yii::$app->params['imagesUrl'] . $image->fileName, ['alt' => 'preview', 'class' => 'img text-center img-responsive']);
Почему-то обновляется страница, вместо того, чтобы отобразить картинку в полном размере.
В инструментах разработчика хром в консоли ошибок нет, во вкладе network эти pjax запросы полностью пустые.
А вот если в actionImage
возвращать просто изображение:
public function actionImage(){
return "<img class='img text-center img-responsive' src=".Yii::$app->params['imagesUrl'].$image->fileName.">";
}
То всё работает, однако так делать нельзя, да и очень неудобно.
Подскажите, пожалуйста, как быть и что я делаю не так?