Skip to content

Latest commit

 

History

History
122 lines (94 loc) · 4.72 KB

blog_create.wiki

File metadata and controls

122 lines (94 loc) · 4.72 KB

  1. summary blogチュートリアル(6) 記事の追加
  2. 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]