在 OctoberCMS 中更改 columns.yaml 中的状态文本

Change status text in columns.yaml in OctoberCMS

我想将 Yes/No 更改为 Active/Closed 因为我已经尝试

status:
        label: Status
        type: group
        conditions: status in (:filtered)
        options:
            pending: Pending
            active: Active
            closed: Closed

status:
        label: Status
        type: switch

以上代码在https://octobercms.com/docs/backend/lists#column-switch

中找到

谁能有什么解决办法吗?

没有针对 switch 列类型的 yaml 配置来执行此操作,但可以使用其他两种解决方案

方法一,需要覆盖本地化文件。

  • 在项目文件夹中创建 lang/en/backend 目录
  • 创建文件 lang.php 并在其中添加:
 <?php    
   return [
       'list' => [
          'column_switch_true' => 'Active',
          'column_switch_false' => 'Closed'
       ],     
   ];
  • (可选)如果您必须覆盖其他消息,基本语言文件是 modules/backend/lang/en/lang.php

缺点

  • 它将影响所有 switch 类型的列

方法 2. 为该列创建部分

  • 将列的 yaml 配置更改为:

    状态: 标签:状态 类型:部分 路径:column_status

  • 将文件 _column_status.htm 添加到 controllers 文件夹中的相应文件夹,内容为:

<?php if($value) :?>
    Active
<?php else: ?>
    Closed
<?php  endif ?>

试试这个:

在您的模型中:

public function getIsActiveAttribute()
    if ($this->status) {
        return 'Active';
    } else {
        return 'Closed';
    }
}

在modelname/columns.yaml

isActive:
    label: Status
    type: html

您可以 return html 来自函数 getIsActiveAttribute() 的字符串

例如

public function getIsActiveAttribute()
    if ($this->status) {
        return '<i style="color:green">Active</i>';
    } else {
        return '<i style="color:red">Closed</i>';
    }
}