问题描述
我想更改“状态”列-在CMS十月的栏目.yaml中使用颜色...
<div class="control-list">
<table class="table data">
<thead>
<tr>
<th style="width: 150px"><span>Status</span></th>
<th class="active sort-asc"><a href="/">Title</a></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="oc-icon-circle text-success">
Approved
</span>
</td>
<td>The sun is shining</td>
</tr>
<tr>
<td>
<span class="oc-icon-circle text-danger">
Cancelled
</span>
</td>
<td>The weather is sweet here</td>
</tr>
</tbody>
</table>
</div>
如何在我的系统模型中添加这样的东西?
解决方法
整行(更容易)
您可以将一个类应用于覆盖控制器中listInjectRowClass
的整个行,并返回其中一个类listed in the docs的名称,例如:
public function listInjectRowClass($model,$definition)
{
switch ($model->status) {
case Order::STATUS_NEW:
return 'new';
break;
case Order::STATUS_PREPARING:
return 'processing';
break;
case Order::STATUS_PREPARED:
return 'processing';
break;
case Order::STATUS_SHIPPED:
return 'frozen';
break;
case Order::STATUS_DELIVERED:
return 'positive';
break;
case Order::STATUS_WITHDRAWN:
return 'positive';
break;
}
}
这将导致如下所示:
该行只有一列
这有点棘手,基本上,您必须use a partial才能呈现该列。
在您的columns.yaml
content:
type: partial
path: ~/plugins/acme/blog/models/comments/_content_column.htm
在部分文件_content_column.htm
中,您需要具有以下内容:
<span class="<?= $record->column_status_class ?>">
<?= $value ?>
</span>
其中,如文档所述:
$value
是默认的单元格值
$record
是用于单元格的模型
因此,在此示例中,模型需要一个名为getColumnStatusClassAttribute
的函数,该函数将返回正确的类名。