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

时间:2016-09-16 11:16:16

标签: octobercms

enter image description here

我想改变是/否为活跃/已关闭我尝试过

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

AND

status:
        label: Status
        type: switch

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

中找到

任何人都可以有任何解决方案吗?

2 个答案:

答案 0 :(得分:3)

switch列类型没有yaml配置来执行此操作,但其他两种解决方案是可能的

方法1.您需要覆盖本地化文件。

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

下行

  • 会影响所有switch类型列

方法2.为此列创建部分

  • 将列的yaml配置更改为:

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

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

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

答案 1 :(得分:0)

试试这个:

在您的模型中:

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

中的

isActive:
    label: Status
    type: html

你可以从函数getIsActiveAttribute()

返回html字符串

例如

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