O/R マッパーということで、基本的には、全部のカラムをひっぱってくるわけですが、ちょっと idとタイトルの一覧を表示するだけだから、全部ひっぱり出すのは、ちょっと勿体ないよねぇ…ってときは
my $articles = $schema->resultset('Article')->search(
undef,
{ columns => [qw/ id title /] }
);
のようにすれば、カラムを指定してデータを取ってこれます。
ただし、
__PACKAGE__->many_to_many(
'tags' => 'tagmap',
'tag_id'
);
とか、リレーションを設定しているものにたいしては、うまく動きません。実際にやってみると
my $articles = $schema->resultset('Article')->search(
undef,
{ columns => [qw/ id tags /] }
);
は
DBD::mysql::st execute failed: Unknown column 'me.tags' in 'field list' at /usr/share/perl5/DBIx/Class/Storage/DBI.pm line 782.
DBIx::Class::ResultSet::next(): Error executing 'SELECT me.id, me.tags FROM article me': Unknown column 'me.tags' in 'field list' at select.pl line 19
のようなメッセージを吐いて失敗します。忘れそうなので、メモ。というか普通になんか方法ありそうだけどねぇ(^_^;
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |