@elfsfucker

Почему pjax обновляет страницу?

Хочу сделать галерею на основе 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.">";
    }


То всё работает, однако так делать нельзя, да и очень неудобно.
Подскажите, пожалуйста, как быть и что я делаю не так?
  • Вопрос задан
  • 746 просмотров
Решения вопроса 1
@elfsfucker Автор вопроса
Помогла установка тайм-аута:
Pjax::begin(['timeout' => 5000 ]);

https://github.com/yiisoft/yii2/issues/8819
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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