php – Yii2 Pjax删除不起作用

前端之家收集整理的这篇文章主要介绍了php – Yii2 Pjax删除不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用带有删除按钮的Pjax创建Ajax GridView.删除没有Ajax.我是Yii2的新手,所以任何帮助都将不胜感激.谢谢.

的index.PHP

  1. <?PHP Pjax::begin(['id' => 'countries']) ?>
  2. <?= GridView::widget([
  3. 'dataProvider' => $dataProvider,'columns' => [
  4. ['class' => 'yii\grid\SerialColumn'],'id','title',['class' => 'yii\grid\ActionColumn','buttons' => [
  5. 'delete' => function ($url,$model,$key) {
  6. return Html::a('<span class="glyphicon glyphicon-trash"></span>',$url,[
  7. 'title' => Yii::t('yii','Delete'),'data-confirm' => Yii::t('yii','Are you sure you want to delete this item?'),'data-method' => 'post',]);
  8. },]
  9. ],],]); ?>
  10. <?PHP Pjax::end() ?>

调节器

  1. public function actionDelete($id)
  2. {
  3. $model = new Category();
  4. $this->findModel($id)->delete();
  5. $dataProvider = new ActiveDataProvider([
  6. 'query' => Category::find(),]);
  7. return $this->render('index',[
  8. 'dataProvider' => $dataProvider,'model' => $model,]);
  9. }

这是Controller中的公共函数actionIndex()

  1. public function actionIndex()
  2. {
  3. $model = new Category();
  4.  
  5. $dataProvider = new ActiveDataProvider([
  6. 'query' => Category::find(),]);
  7.  
  8. if ($model->load(Yii::$app->request->post()) && $model->save())
  9. {
  10. $model = new Category();
  11. }
  12. return $this->render('index',]);
  13. }
数据方法和数据确认不允许您通过pjax创建ajax请求,您应该实现自己的确认对话框并删除POST动词过滤器,或者您可以使用确认对话框并指定http方法来实现您自己的ajax插件.

此外,我认为,必须有通过确认对话框扩展pjax插件方法,但Yii2默认情况下不提供此功能.

猜你在找的PHP相关文章