0

我想更改状态列 - 在 CMS 10 月中使用 columns.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>

如何将这样的东西添加到我的系统模型中?

4

1 回答 1

1

整行(更容易)

您可以将一个类应用于控制器中的整个行覆盖listInjectRowClass,并返回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;
    }
}

这将导致如下结果:

在此处输入图像描述

只有一行的一列

这有点棘手,基本上你必须使用部分来渲染列。

在你的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将返回正确的类名。

于 2020-09-30T22:28:04.043 回答