Продлить декларацию template и buttons так:
[
'class' => 'yii\grid\ActionColumn',
'template' => '{download} {view} {update} {delete}',
'buttons' => [
'download' => function ($url) {
return Html::a(
'<span class="glyphicon glyphicon-arrow-down"></span>',
$url,
[
'title' => 'Download',
'data-pjax' => '0',
]
);
},
],
],
значок загрузки с URL будет добавлен в существующий набор иконок. Вы можете увидеть, например, как отображаются значки по умолчанию here.
В общем случае вам даже не нужно строить связь вручную, она будет построена на основе имени кнопки и первичного ключа модели, например /download?id=1
.
В случае, если вы хотите различный URL специальное свойство существует, то он называется $urlCreator, но вы также можете изменить его прямо в замыкании кнопки рендеринга, например:
'download' => function ($url, $model) {
return Html::a(
'<span class="glyphicon glyphicon-arrow-download"></span>',
['another-controller/anotner-action', 'id' => $model->id],
[
'title' => 'Download',
'data-pjax' => '0',
]
);
},
Где именно вы хотите разместить эту кнопку? В столбце действий с кнопками, такими как просмотр/обновление/удаление? Или в отдельной колонке? Как загружаются файлы? В архиве отдельно или один файл для каждой строки GridView? Пожалуйста, предоставьте более подробную информацию. – arogachev
Привет, спасибо за ответ. Мне нужно поместить кнопку в столбец действия. Каждая строка в GridView имеет один конкретный файл, поэтому мне нужна одна кнопка для каждой строки Grofview. – AleCat83