Yii2 how to add custom button to a gridview?

How can I add custom buttons to a GridView in Yii2? I’ve googled for this but strangely found nothing that I understood or that would work. I was able to do this in Yii1, but it works differently in Yii2.

If I have

   <?php Pjax::begin(); ?>    <?= GridView::widget([

        'dataProvider' => $dataProvider,

        'filterModel' => $searchModel,

        'columns' => [

            ['class' => 'yii\grid\SerialColumn'],




    ]); ?>

What do I have to do to add to this a button that activates an action (and sends the id of the buttons row object)? I know there are already topics here on this issue, but I’m very confused, I must lack some basic understanding of the principles implemented in GridView.

First you schould create a action in your controller, then add that column in ‘columns’ => [ … ]


                'format' => 'raw',

                'value' => function($model, $key, $index, $column) {

                        return Html::a(

                            '<i class="fa fa-euro"></i>',

                            Url::to(['mycontroller/myaction', 'id' => $model->ID]), 




                                'action'=>Url::to(['mycontroller/myaction', 'id' => $model->ID]),

                                'class'=>'button btn btn-default',





Here I use the ‘url’ value of ‘Html::a’ and in ‘action’ custom attribute, this is done for my ajax code