2017-05-08 55 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

相關問題