Yii2 - передать переменную из представления в столбцы пользовательских действий Gridview

Я хочу сохранить последнее место, которое посетил пользователь, прежде чем нажать кнопку "Изменить" в виджетах gridview страницы. Я создал переменную с именем $lastAddress, но я действительно не знаю, как передать ее в gridview и добавить ее к переменной $url кнопки "Изменить". Может ли кто-нибудь показать мне, как?

$lastAddress = 'xxx';
    <?=
        GridView::widget([
            ...
                [
                    'class' => 'yii\grid\ActionColumn',
                    'template' => '{view} {update} {delete}',
                    'buttons' => [
                        'update' => function ($url, $model) {
                            $url .= '&lastAddress=' . $lastAddress; //This is where I want to append the $lastAddress variable.
                            return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url);
                        },
                    ],
                ],
            ],
        ]);
        ?>

Ответы

Ответ 1

Используйте use, чтобы передать переменные из родительской области в закрытие:

'update' => function ($url, $model) use ($lastAddress) {
    $url .= '&lastAddress=' . $lastAddress; //This is where I want to append the $lastAddress variable.
    return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url);
},