我是Yii2框架中的佼佼者。
我在论坛上工作:
在forum / posts方法中,有一个关于该主题的帖子列表。
每个帖子在AJAX中都有我想要的分数。
在我看来posts.php
,我打开一个Pjax块:
<?php Pjax::begin(); ?>
Votes : <?= $val['score'] ?>
<?= Html::a('+', ['/post/voteup','id'=>$val['id']]) ?>
<?= Html::a('-', ['/post/votedown','id'=>$val['id']]) ?>
<?php Pjax::end(); ?>
在我的PostController中:
public function actionVoteup($id){
//Update request
$postRepo=new PostRepository();
$postRepo->vote('plus', "id=$id");
$post=$postRepo->getAll("id=$id");
return $this->renderAjax('vote', ['id'=>$id, 'score'=>$post[0]['score']]);
}
你可以看到我在Ajax中返回Vote.php视图,代码为Pjax。
<?php Pjax::begin(); ?>
Votes : <?= $score ?>
<?= Html::a('+', ['/post/voteup','id'=>$id]) ?>
<?= Html::a('-', ['/post/votedown','id'=>$id]) ?>
<?php Pjax::end(); ?>
更新请求没问题,但我有一些问题/疑问:
例如:我想获得第二个分数,我点击,好的,我再次点击,刷新的部分视图是第一个帖子得分(但在数据库中,它是&#39; s好分数更新)。
我认为问题在于我在actionVoteup()
中回归的观点。
我应该返回论坛/帖子还是发帖/投票?
当我点击链接时,我的网址为:post/voteup
;如何在原始网址论坛/帖子中返回?
我真的不明白Pjax是如何运作的,而且我没有找到关于它的使用的好例子。
感谢您的回复:)
答案 0 :(得分:1)
您需要在'enablePushState' => false
属性中添加Pjax
。
喜欢
<?php Pjax::begin(['enablePushState' => false]); ?>
了解更多信息。访问此Demo