The Document of Aska

コントローラーの実装2

コントローラー(ページ)を実装します。

標準でURLからテンプレートパスを自動生成する機能がありますので、まずはそれを使ってみましょう。

1. ルーティング設定追加 ( etc/routes.pl )

router {
    connect '/' => { controller => 'Root', action => 'index' };
    connect '/inquiry/:action' => { controller => 'Inquiry' };
};

2. Controller 用意

package Hamburger::Controller::Inquiry;
use strict;
use warnings;
use parent 'Pickles::Controller';

sub form {
    my ( $self, $c ) = @_;

    # テンプレートへ渡すパラメーターをセット
    $c->stash->{type} = $c->req->param('type');
}

1;

3. テンプレート 用意 ( view/inquiry/form.html )

[% c %] は $c ( Pickles::Context ) が渡されます、その他のパラメーターは $c->stash にセットした値です

<html>
<head>
    <title>[% c.appname | html %]</title>
</head>
<body>
<h1>form</h1>
<p>type: [% type %]</p>
<form action="" method="post">
<div>Name: <input type="text" name="name" value="" /></div>
<div><input type="submit" name="button" value="送信" /></div>
</form>
</body>
</html>

4. http://localhost:5000/inquiry/form へアクセス