gugoan
gugoan

Reputation: 780

Use Yii2 Gridview SerialColumn as rank

How do I use the values of the Serial Column as ranking?

Example:

If the value is 1, I show gold.png,

If value is 2, I show silver.png,

If value is 3, I show bronze.png,

I did so but gave not sure:

  'columns' => [   
        [
        'class' => 'yii\grid\SerialColumn',
        'content' => function($model, $key, $index, $column) {
            if ($index == 1) {
               return Html::img(Yii::$app->request->BaseUrl.'/images/medal-gold-icon.png');
            }elseif ($index == 2) {
               return Html::img(Yii::$app->request->BaseUrl.'/images/medal-silver-icon.png'); 
            }elseif ($index == 3) {
               return Html::img(Yii::$app->request->BaseUrl.'/images/medal-bronze-icon.png'); 
            }else {
               return Html::img(Yii::$app->request->BaseUrl.'/images/no-medal-icon.png'); 
            }
        }],

Upvotes: 0

Views: 1467

Answers (1)

Fabrizio Caldarelli
Fabrizio Caldarelli

Reputation: 3008

Why don't you use a custom column?

  'columns' => [   
        [
        'format' => 'raw',
        'header' => 'Rank',
        'value' => function($model, $key, $index, $column) {
            if ($index == 1) {
               return Html::img(Yii::$app->request->BaseUrl.'/images/medal-gold-icon.png');
            }elseif ($index == 2) {
               return Html::img(Yii::$app->request->BaseUrl.'/images/medal-silver-icon.png'); 
            }elseif ($index == 3) {
               return Html::img(Yii::$app->request->BaseUrl.'/images/medal-bronze-icon.png'); 
            }else {
               return Html::img(Yii::$app->request->BaseUrl.'/images/no-medal-icon.png'); 
            }
        }],

Upvotes: 3

Related Questions