Fadly Dzil
Fadly Dzil

Reputation: 2206

Add more action in yii2 grid-actionColumn

I use yii2-grid made by awesome kartik.

My question is, in 'kartik]grid\actionColumn' have default action which is : view, update, and delete. I need to add another action, like 'print', 'email', etc. How can I make do this.

[
    'class' => 'kartik\grid\ActionColumn',
    'width' => '100px',
    'dropdown' => false,
    'vAlign' => 'top',
    'hiddenFromExport' => true,
    'urlCreator' => function ($action, $model, $key, $index) {
        return Url::to([$action, 'id' => $key]);
    },
    'viewOptions' => ['role' => 'modal-remote', 'class' => 'btn btn-xs ', 'title' => 'View', 'data-toggle' => 'tooltip'],
    'updateOptions' => ['role' => 'modal-remote', 'class' => 'btn btn-xs btn-primary', 'title' => 'Update', 'data-toggle' => 'tooltip'],
    'deleteOptions' => ['role' => 'modal-remote', 'class' => 'btn btn-xs btn-danger', 'title' => 'Delete',
                    'data-confirm' => false, 'data-method' => false, // for overide yii data api
                    'data-request-method' => 'post','data-toggle' => 'tooltip','data-confirm-title' => 'Are you sure?','data-confirm-message' => 'Are you sure want to delete this item'],
],

Please advise.

Upvotes: 0

Views: 1708

Answers (1)

gmc
gmc

Reputation: 3990

You should make use of the template and buttons options of the ActionColumn:

[
    'class' => 'kartik\grid\ActionColumn',
    'template' => '{view} {update} {delete} {myaction}', // <-- your custom action's name
    'buttons' => [
      'myaction' => function($url, $model, $key) {
          return Html::a('My action icon', [''my action url];
      }
    ]
...
]

Upvotes: 2

Related Questions