如何在 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中。
谢谢,我非常感谢您的帮助,但我正在尝试根据状态值显示不同的按钮颜色,我尝试了不同的方法,但它不起作用。
[
'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中。