コントローラーの実装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>