Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
yii2在gridview中更改控制器操作_Gridview_Controller_Grid_Action_Yii2 - Fatal编程技术网

yii2在gridview中更改控制器操作

yii2在gridview中更改控制器操作,gridview,controller,grid,action,yii2,Gridview,Controller,Grid,Action,Yii2,我有ItemController,在actionView中我把Itempicture的gridview放进去,我想当我点击图标视图时,更新并删除,然后转到ItempictureController 那么如何使用不同的控制器更改gridview中的控制器操作呢?在gridview中,添加 [ 'class' => 'yii\grid\ActionColumn', 'template' => '{new_action1}{new_action2}', 'buttons' =&

我有ItemController,在actionView中我把Itempicture的gridview放进去,我想当我点击图标视图时,更新并删除,然后转到ItempictureController


那么如何使用不同的控制器更改gridview中的控制器操作呢?

在gridview中,添加

[
  'class' => 'yii\grid\ActionColumn',
  'template' => '{new_action1}{new_action2}',
  'buttons' => [
    'new_action1' => function ($url, $model) {
        return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', 'controller/action?id='.$model->id, [
                    'title' => Yii::t('app', 'New Action1'),
        ]);
    }
  ],
],
[
'class'=>'yii\grid\ActionColumn',
'模板'=>'{new_action1}{new_action2}',
“按钮”=>[
'new_action1'=>函数($url$model){
返回Html::a(“”,'controller/action?id=”。$model->id[
'title'=>Yii::t('app','newaction1'),
]);
}
],
],
希望这能奏效

试试这个:

[
   'class' => 'yii\grid\ActionColumn',
   'template'    => '{view}',
   'controller' => 'ItempictureController'
]

您需要设置yii\grid\ActionColumn的$controller属性。在您的情况下,请尝试以下方法:

[
    'class' => 'yii\grid\ActionColumn',
    'controller' => 'itempicture'
]

如果您使用的是yii\data\ArrayDataProvider,请确保将$key属性设置为:

$dataProvider->key='id'//id是Itempicture模型的主键名称


希望有帮助。

有一个简短的解释通常比只有代码的答案要好。我知道这是一个很老的问题,但我的gridview有一个问题,我在
actioncolumn
中使用了不同的
controller
操作,gridview在
pjax
中,所以当我点击按钮时,它不会打开一个完整的窗口新页面它只是刷新gridview。知道怎么解决吗?如果使用SqlDataprovider,还必须设置$dataProvider->key='id';简单高效的解决方案:-)这不起作用,因为urlCreate将此路由转换为“ItempictureController/view”。但是r字符串必须是“itempicture/view”
[
    'class' => 'yii\grid\ActionColumn',
    'controller' => 'itempicture'
]