如何在 yii gridview 中添加一列,每个值具有不同的按钮颜色

how to add a column in yii gridview with each value having different button color

谢谢,我非常感谢您的帮助,但我正在尝试根据状态值显示不同的按钮颜色,我尝试了不同的方法,但它不起作用。

[  
    'label' => 'Status',  
    'format' => 'raw',
    'value' => function ($model) {  
        if ($model->status = "Approved") {
            $sta = "btn-success";
        } elseif ($model->status = "Pending...") {
            $sta = "btn-info";
        } else {
            $sta = "btn-danger";
        }
        $btn = '<a href="' . Url::home() . 'site/index?id=' . $model->id .'" data-toggle="tooltip" title="Status" data-placement="bottom" class="btn btn-sm'.$sta.' ">'.$model->status.'</a>';   
        return $btn;   
    },  
],

这个只看到第一个只显示所有值的 "approved " 并使它们都变成一种颜色..

我也是这样做的

[  
    'label' => 'Status',  
    'format' => 'raw',
    'value' => function ($model) {  
        foreach ($model->status as $status) {
            if ($model->status = "Approved") {
                $sta = "btn-success";
                $btn = '<a href="' . Url::home() . 'site/index?id=' . $model->id .'" 
                        data-toggle="tooltip" title="Status" data-placement="bottom" class="btn btn-sm 
                        '.$sta.' ">'.$model->status.'</a>';   
                return $btn;   
            } elseif ($model->status = "Pending...") {
                $sta = "btn-info";
                $btn = '<a href="' . Url::home() . 'site/index?id=' . $model->id .'" 
                            data-toggle="tooltip" title="Status" data-placement="bottom" class="btn btn-sm 
                            '.$sta.' ">'.$model->status.'</a>';   
                return $btn;   
            } else {
                $sta = "btn-danger";
                $btn = '<a href="' . Url::home() . 'site/index?id=' . $model->id .'" 
                        data-toggle="tooltip" title="Status" data-placement="bottom" class="btn btn-sm 
                        '.$sta.' ">'.$model->status.'</a>';   
                return $btn;   
            }     
        }      
    },  
],

但是这个给出了一个错误,在 foreach 循环中传递了无效参数

将单个 = 符号更改为 3 === 个符号。

像这样

if ($model->status === "Approved") {
    $sta = "btn-success";
} elseif ($model->status === "Pending...") {
    $sta = "btn-info";
} else {
    $sta = "btn-danger";
}

通过仅使用一个 =,您将值分配给变量,因此第一个选项将始终为真。


第二个报错,因为$model->status包含的是字符串值,不是数组,所以不能用在foreach中。