このエントリはPlay frameworkひとりアドベントカレンダーの19日目です。
今日は /artist/ を実装します。
controllerを移植
例によって元コードを見ます。
get '/artist/:artistid' => [qw(recent_sold)] => sub {
my ($self, $c) = @_;
my $artist = $self->dbh->select_row(
'SELECT id, name FROM artist WHERE id = ? LIMIT 1',
$c->args->{artistid},
);
my $tickets = $self->dbh->select_all(
'SELECT id, name FROM ticket WHERE artist_id = ? ORDER BY id',
$artist->{id},
);
for my $ticket (@$tickets) {
my $count = $self->dbh->select_one(
'SELECT COUNT(*) FROM variation
INNER JOIN stock ON stock.variation_id = variation.id
WHERE variation.ticket_id = ? AND stock.order_id IS NULL',
$ticket->{id},
);
$ticket->{count} = $count;
}
$c->render('artist.tx', {
artist => $artist,
tickets => $tickets,
});
};
- artist.idでartistからartistを取得
- artis.idでticketからticketを取得
- ticketごとにカウントを取得
さて、ticketごとのカウントをviewにどう渡すか困ってしまいました。。
とりあえず動けばいいので、力技ですがHashMapで渡すことにしましょう。
[Read More]