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/
 coupon_id
 login_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