2017-05-08 61 views
0

显示值我有这样的模型:OctoberCMS在列表中可用,而不是1和不可用的,而不是0

fields.yaml 
    special_offer: 
     label: special_offer 
     type: Switch 
     default: true 

DB字段是TINYINT(1)

工作好!

但我想在列表中显示不为0或1,但可用/不可用。 我可以存储字符串,但我更喜欢将它转换。

此访问:

public function getSpecialOfferAttribute ($value){ 
     return ($value === 1) ? 'available' : 'not available' ; 
} 

将显示在右侧列表中,但错在形式,因为开关只接受0/1

我怎样才能做到这一点?

感谢

回答

1

你可以使用一个custom column type。定义自定义字段类型在你plugin.php文件:

public function registerListColumnTypes() 
{ 
    return [ 
     // Convert special offer values to text 
     'special_offer' => function($value) { 
      $map = [ 
       0 => 'not available',  
       1 => 'available',  
      ]; 
      return $map[$value]; 
     } 
    ]; 
} 

然后在列表列的定义文件中使用此:

special_offer: 
    label: Special offer 
    type: special_offer 
+0

所以做就意味着我不能使用现有的类型做呢?我只是想如果你想定制的翻译使用开关(( – aleXela

+0

,那么我认为你没有选择。该交换机使用翻译字符串'后端:: lang.list.column_switch_true'和'后端:: lang.list.column_switch_false' – dragontree

+0

悲伤!写在十月论坛,希望将得到答案从那里) 谢谢 – aleXela

相关问题