首页 > 解决方案 > Yii2:如何在actionColumn中传递数据列?

问题描述

我有一个包含两列的 GridView:country_name和一个actionColumn带有名为Save的按钮。

保存按钮是一个超链接,例如:

http://localhost/countries/view?country_name=Argentina

我不知道如何将 Argentina 设置为 country_name 因为我的视图没有模型。我只有来自 country_name 列的数据。

GridView::widget([
  'dataProvider' => $dataProvider,
  'columns' => [
    'country_name',
    [
      'class' => 'yii\grid\ActionColumn',
      'template' => '{save}',
      'buttons' => [
        'save' => function($model) {
          return Html::a('Save', ['/countries/view', 'country_name' => $model['country_name']]); // Error: Illegal string offset 'country_name'
        }
      ]
    ],
  ],
])

我正在使用这个Yii2 帮助

标签: htmlgridviewmodelyii2

解决方案


请参阅ActionColumn:$buttons文档 - 模型作为第二个参数传递给按钮回调:

'buttons' => [
    'save' => function($url, $model) {
        return Html::a('Save', ['/countries/view', 'country_name' => $model['country_name']]);
    }
]

推荐阅读