
October CMSの一覧画面で、数値の値を変換する
October CMSの一覧画面で、DBに登録されている数値をそのまま表示せず、値を変換して表示するようにします。
やりたいこと
DBに登録されているstatusの値が、1 だったら 「受付中」、2 だったら「受付完了」、9だったら「エラー」と、一覧に表示する。
環境
- Laravel:5.5
- October CMS:1.0
実装
1.lang.phpに定義を追加します。
return [
'db' => [
'status' => [
'1' => '受付中',
'2' => '受付完了',
'9' => 'エラー',
],
],
]
2.columns.yamlのtypeに任意の値を設定します。
status:
label: XXXXXXXX
type: status_list // ←任意の値
3.Plugin.phpに関数を追加
下記の関数を追加します。
・registerListColumnTypes()
・statusListColumn($value, $column, $record)
public function registerListColumnTypes()
{
return [
'status_list' => [$this, 'statusListColumn'], // キーはcolumns.yamlで指定した値
];
}
// ステータス区分
// 関数名は上記で追加した値
public function statusListColumn($value, $column, $record)
{
return Lang::get('xxxxx::lang.db.status')[$value];
}これで一覧に変換された値が表示されます。
※補足
下記でも変換して表示されますが、columns.yamlファイルに値を記載するため、1箇所の定義だけで表示できないかと思い、上記の方法を探しました。
columns.yaml
status:
label: XXXXXXXX
select:
case xxxx.status
when 1 then '受付中'
when 2 then '受付完了'
when 9 then 'エラー'
end
