DBIx::Class::ResultSetManager

2007年5 月13日  |  Written by matsumoto  |  under Perl Yahoo!ブックマークに登録    はてなブックマーク - DBIx::Class::ResultSetManager

DBIx::Classをいじっているわけですが、
Class::DBIみたいに、パッケージに自分を生成するクラスメソッドを作りたかったんですよ。

こんな感じにしたい

$schema->resultset('Sample')->recent_entries;

DBIx::Class::ResultSetManagerでResultSetにメソッドを追加 の素晴らしい事例を見て納得、なるほど。

こんなのがテーブルにマッピングしたモジュールにあって、呼び出したらイテレータなどが返ってくるという感じ。↓

package Schema::Sample;

use base qw/DBIx::Class/;

__PACKAGE__->load_components(qw/
ResultSetManager
Core
/);
__PACKAGE__->table(’sample');
__PACKAGE__->add_columns(qw/id title body timestamp/);
__PACKAGE__->set_primary_key('id');

sub recent_entries : ResultSet {
my $class = shift;
return $class->search( undef, { order_by => [ qw/timestamp/ ] } );
}

で、resultsetから直接 recent_entries を実行できました。

現在コメントはありません | コメントの投稿はこちら

コメントを書き込む

コメント本文

※コメントのフォーム内で以下のタグがご利用いただけます
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

私はチーム・マイナス6%です