yii2 在 gridview 中更改控制器操作

问题描述 投票:0回答:5

我有 ItemController 并在 actionView 中放置了 Itempicture 的 gridview,我希望当我单击图标视图时,更新和删除,然后转到 ItempictureController。

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

gridview controller grid action yii2
5个回答
22
投票

您需要设置 yii\grid\ActionColumn 的 $controller 属性。对于您的情况,请尝试以下操作:

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

http://www.yiiframework.com/doc-2.0/yii-grid-actioncolumn.html#$controller-detail

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

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

http://www.yiiframework.com/doc-2.0/yii-data-arraydataprovider.html#$key-detail

希望有帮助。


22
投票

在你的网格视图中,添加喜欢

[
  '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'),
        ]);
    }
  ],
],

希望这会起作用!


5
投票

试试这个:

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

https://github.com/yiisoft/yii2/blob/master/docs/guide/output-data-widgets.md#action-column


3
投票
[
   'class' => 'yii\grid\ActionColumn',
   'template'    => '{view}',
   'controller' => 'itempicture'
]

0
投票

我无法让控制器变量工作,即使它过去是这样。

不得不求助于:

   [
     'class' => 'kartik\grid\ActionColumn',
     'urlCreator' => function($action, $model, $key, $index) { 
             return Url::to(['new-test/'.$action,'id'=>$key]);
     },...]

记住,当控制器类似于 NewTestController 时,实际链接 url 应该是“new-test/action”

© www.soinside.com 2019 - 2024. All rights reserved.