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

)を使用したいと思っています。カスタム翻訳が必要な場合は、選択肢がありません。スイッチは変換文字列 'backend :: lang.list.column_switch_true'と' backend :: lang.list.column_switch_false'を使用します。 – dragontree

+0

悲しい!10月のフォーラムで書いて、そこから答えが得られるでしょう) thanks – aleXela

関連する問題