使用Pjax实现Upvote

时间:2017-07-14 17:23:36

标签: yii2

我想在不重新加载页面的情况下提交数据。所以我使用了Pjax。当我点击upvote(views \ site \ vote.php :)时,页面会重新加载并返回错误undefined variable: id。我想知道为什么以及如何解决这个问题。我认为这是由于id=>$id

视图\站点\ vote.php:

<?php Pjax::begin(['enablePushState' => false]); ?>
    <?= Html::a('upvote', ['site/upvote', 'id'=>$id]) ?>
<?php Pjax::end(); ?>

但使用'id'=>18代替'id'=>$id,它可以正常工作(提交,页面不会重新加载,也不会返回错误)。

    <?php Pjax::begin(['enablePushState' => false]); ?>
    <?= Html::a('upvote', ['site/upvote', 'id'=>18]) ?>
<?php Pjax::end(); ?>

控制器\ SiteController.php:

public function actionVote()
{  
   $id=18;
   return $this->render('vote',[
       /* 5 other variables */
       'id'=>$id,
   ]);
}

public function actionUpvote($id)
{
    .....
    return $this->render('vote');
}

0 个答案:

没有答案