このエントリは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で渡すことにしましょう。