2017-08-03 41 views
0

我正在嘗試創建一個顯示圖形的列。圖形將鏈接到允許用戶下載文件的URL。任何幫助將大規模讚賞。當前代碼如下:如何在kartik gridview中創建自定義動作列

GridView::widget([ 
'dataProvider' => $dataProvider, 
'pager' => [ 
    'class' => 'common\widgets\Pagination', 
], 
'columns' => [ 
    ['class' => 'yii\grid\SerialColumn'], 
    [ 
     'label' => 'Date', 
     'attribute' => 'call_datetime', 
     'format' => 'date', 
    ], 
    [ 
     'label' => 'Time', 
     'attribute' => 'call_datetime', 
     'format' => 'time', 

    ], 
    'call_from', 
    'call_to', 
    'duration', 
    'call_type', 
    'extension', 

    [ 
     'label' => 'File', 
     'attribute' => 'fname', 
     'value' => 'callRecFiles.fname', 
    ], 

這是用戶將要下載的最後一個屬性'fname'。

回答

0

fname場陣列更改爲:

[ 
    'label' => 'File', 
    'attribute' => 'fname', 
    'value' => function($model) { 
     //here create glyphicon with URL pointing to your action where you can download file, something like 
     return $model->callRecFiles ? Html::a('Download', ['myController/download-action', 'fname' => $model->callRecFiles->fname]) : null; 
    } 
], 

並準備採取適當的行動,以允許用戶下載文件。

+0

再次感謝你@Yupik。然而,直到我加入 ''format'=>'raw'' 鏈接顯示爲純文本 – Kyle