web-dev-qa-db-ja.com

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);
                        },
                    ],
                ],
            ],
        ]);
        ?>
18

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);
},
58
topher