- summary blogチュートリアル(6) 記事の追加
- sidebar TableOfBlogTutorial
ページコントローラーであるBEARは"action per page"が基本です。記事の追加用のページをつくります。
create.php
このページでは閲覧ページには無かったonActionというメソッドが加わりました。このメソッドはフォームのバリデーションが取った時だけ呼ばれます。※このときonOutput()は呼ばれません。
onAction内では記事の作成のためにPostリソースがcreateメソッドでアクセスされています。その後にheaderサービスオブジェクトのredirectメソッドで記事一覧ページにリダイレクトしています。
Note:
$submitは単にサブミットされた値というだけではなく、フォームに登録し生成時の制限にしたがった信頼のできるものです。フォームオブジェクトに加えられてないもしサブミットされてもエレメントは無視されます。
Note:
アンダースコアで始まるエレメントは"private"に使用してるものとして$submitには渡りません。ボタン名やトークン、制御に使われるものに使います。あるいは「規約に同意」チェックはバリデーションの為には必要ですが、後のリソースリクエストには必要ありません。そのような場合にも使います。
App/Form/Post.php
このページのビューテンプレートを設置します。
App/views/pages/create.tpl
フォームもリソースのセットと同様に、ページテンプレート内では内部構造を暴露してないことに注目してください。フォームのエレメントをページテンプレートの変更なしに動的に変える事が用意です。またフォームに変更があったときでもページテンプレートに変更の必要がありません。UAに応じたフォームをレンダリングする事も可能です。
App/views/pages/create.ymp
Post.phpに下記のコードを追加します App/Ro/Post.php
コードの入力が完了したら、ブラウザで/create.php にアクセスしてみてください。新規追加用のフォームが表示されたら、何かデータを入力して「Save Post」ボタンをクリックし、データが正しく追加されるかどうか確認して下さい。
* [form] * [db] * [http://pear.php.net/manual/ja/package.html.html-quickform.php PEARマニュアル QuickForm] * [http://pear.php.net/manual/ja/package.html.html-quickform-renderer-tableless.php PEARマニュアル HTML_QuickForm_Renderer_Tableless] * [http://pear.php.net/manual/ja/package.database.mdb2.php PEARマニュアル MDB2]