ROWオブジェクトを拡張してCASE式の代わり

スキーマクラスにメソッドを追加して、CASE式の代わりにする。以下はstatus_flgカラムの値から条件分岐して説明文言を返すカラムを追加している。

 package Schema::Member;
 
 use base 'DBIx::Class';
 
 __PACKAGE__->load_components(qw/ PK::Auto Core/);
 __PACKAGE__->table('member');
 __PACKAGE__->add_columns(qw/
 member_id
 status_flg
 /);
 sub status_flg_desc {
     my $self = shift;
     my $status_flg = $self->status_flg;
     return
         $status_flg eq '1' ? '有効'
       : $status_flg eq '0' ? '無効'
       :                      'N/A';
 }

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-06-16 (木) 11:32:02