FuelPHPによるMVCプログラミング入門

フォームとの連携

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
フォームに入力された値は、FuelPHPでは「Input」というオブジェクトを利用します。ここでは、入力フォームから商品の情報を入力するフォームを制作してみましょう。
講師:
12:54

字幕

ここでは、フォームとの連携ということで、データベースにデータを挿入する時にフォームを使って誰でも Web ページから入力できるような入力フォームというのを作ってみたいと思います。ではまず、データベースを準備していきます。MAMP の Start ページを表示したら、phpMyAdmin から「データベース」のこちら「データベースを作成する」という所にfuelphp と記入します。照合順序としては、utf8_general_ci を選びまして、「作成」をします。作ったデータベースにテーブルを作成していきましょう。ここでは、アイテムを作成するためのitems というテーブルを作り、カラム数は3つにします。「実行」ボタンをクリックすると、このような画面が出て来ますので、ここでは idそれから item_nameそして price という値段を入れるフィールドを定義します。id と price はそれぞれ INT とし、item_name は500 / char とします。そして id には「インデックス」としてPRIMARYそれから AUTO_INCREMENT を設定し、「保存」をします。これで、データベースの準備は完了です。 では、続いて fuelphp をセットアップしていきましょう。こちらの MAMP のアップロードフォルダですね。MAMP のhtdocs にダウンロードしたこちらの fuelphp-1 をセットアップしていきます。名前を lesson03-03 としましょう。MAMP のドキュメントルートもそれに合わせて設定を変更していきます。では、次に fuel の app のconfig の db.phpこちらのファイルを編集して、データベースへの接続を記述します。設定の内容としては、このようになります。type を mysql とし、connection の所にホストネームとしてMAMP の Start ページに表示されているこちらの情報を入れます。そして、ユーザー名とパスワードはそれぞれ root です。XAMPP の場合はパスワードは無しになります。persistent は falsetable_prefix 、 charset 、enable_cache 、 profiling をそれぞれ、このように設定してください。これで db との接続が完了です。では、コントローラーから作っていきましょう。 「ページタイプ」を PHP「レイアウト」を「<なし」にして、「ドキュメントタイプ」は適当で結構です。内容を全部選択したら、class Controller_ のここでは Shop とします。extends を Controller とし、public function としてaction を定義します。ここでは、まずはじめに、index というアクションを定義してここにフォームを表示するようにしましょう。では、ここで表示するビューを先に作成しておきます。まず、このファイルをコントローラーとして保存しましょう。MAMP のアップロード先フォルダであるhtdocs にある lesson03-03 のfuel の app のclasses の controllerここに、付けた名前と同じ名前のファイルを付けます。では続いて、ビューです。PHP で「レイアウト」を「<なし」にして、「ドキュメントタイプ」はHTML 5 とします。ここでは少しデザインを整えるためにCSS などの素材をコピーしてきましょう。まず、配布されているtemplate のファイルの内、images と style.css をpublic フォルダの中に入れます。 そして index.html をDreamweaver で編集して、このファイルの内容を全て今作ったビューのファイルの中にコピーします。では、ここに title を付けていきましょう。「商品登録」として、h1 としても「商品登録」とします。そして、この content の中にフォームを作り上げていきます。form タグとしてaction はこの後作りますけども、/shop/save という URL にします。method としては post です。そして、ここではtable を構成していきましょう。「商品名」として、item_namesize を 35 とします。続いて、「値段」として、priceこちらは 10 くらいにしましょう。あとは、 submit ボタンを設置します。「登録する」というようなラベルで作っていきましょう。これで、フォームを閉じれば、ビューは完成です。では、このビューをこちら lesson03-03 のfuel の app のviews というフォルダの中に保存をしていきます。こちら shop というフォルダを作って、その中に index.php という名前で保存しましょう。 これでビューのファイルが登録できましたので、今度はコントローラーからそのビューを呼び出すようにします。今定義している action_index こちらで、今作ったビューを使いますので、return として、View::forge今作ったフォルダ shop/ です。index今回はビューに渡すデータは特にありませんので、パラメータは1つで構いません。これでフォームの画面が出来上がりです。それでは、表示を確認してみましょう。Web ブラウザからlocalhost:8888/shop/indexもしくは index は省略しても結構です。Enter をクリックしますと、このように商品名と値段を入れるテキストボックスが現れます。ここに商品の名前である「いちご」とか100 とか入れて登録をすると、データベースに実際に登録できるという画面を作っていきます。では続いて、アクションを更に作り込んでいきましょう。今度は public function として、action_save というアクションを作ります。これによって、このコントローラーである shop にはsave という名前のアクションが定義されます。 実はこの URL先ほど作ったビューのフォームのaction 属性に定義しています。つまり、このフォームで「登録する」ボタンをクリックした時には、今から作る、この save というこちらのアクションが呼び出されるというわけです。では、この save というアクションの中では何を行うかと言うと、データベースに内容を保存します。そこで、まずはモデルを作っていきましょう。新規ドキュメントで「ページタイプ」は PHP「レイアウト」は「<なし」にして「作成」ボタンをクリックします。内容は全て削除して構いませんので、ここでは class Model_Item として、extends を \Model_Crud とします。そして protected のstatic $_table_name をitems とします。同じく protected static の$_primary_key を id とします。これで items というデータベースのテーブルを使うモデルであるモデルアイテムと言うものが出来上がりましたので、これを使ってセーブをしていきましょう。ファイルの保存先は app のclasses の model です。 ファイル名としては、今付けたこちらの名前と同じitem.php という名前になります。では、今作ったこちらのコントローラーの save アクションでこの item テーブルにデータを入れるという処理を書いていきます。まずは item という変数に今作った Model_Item を割り当てていきます。そして同時に、データベースに入れるデータを準備するための data という変数を準備しこの中の item_name に今フォームで入力した内容を入れていきます。fuel.php の場合、フォームから渡された値は全て Input::post という所に入ります。ここで item_name として、更に priceこちらも同じく、Input::post("price") と入れます。そして item にこの内容を set し、item を save すれば、データベースに格納されます。一応、処理が正常に終わったことを確認するためにここでは Saved!! ということでメッセージを簡単に表示するようにしましょう。では、これで動きを確認してみます。まずは shop/ にアクセスをして、「商品名」と「値段」の所に内容を入れていきます。 例えば、「いちご」で 120 とし、「登録する」ボタンをクリックすると、このように Saved!! と表示されました。MAMP の内容を見ていきますと、phpMyAdmin を起動し、こちらの fuelphp を見ていきます。items テーブルの表示をするとこのように、「いちご」が120 というかたちで入っています。id は何になるかは mysql 次第なので、もしかしたら、こちらの画面とは合っていないかもしれません。では、一度戻って、続けて別のものを入れてみましょう。例えば、ここでは「バナナ」としまして、 80 と入れます。「登録する」ボタンをクリックすると、今度は、このようにフォームからきちんとバナナが入っていることが確認できます。このように Shop というお店などを管理するためのコントローラーを作りましたが、その中には沢山のアクションを定義することができます。ここではフォームを表示するためのindex というアクション。そして、そのフォームから渡される値を実際にデータベースに保存するためのsave というアクションを定義しました。その save というアクションではInput::post というのを使っていますが、これは post の値を取得するためのfuel.php の命令(メソッド)です。 基本的には fuel.php から値を取得する時にはこの Input というのを使うようにしましょう。このようにモデル、ビュー、それからコントローラー、それぞれに様々な処理を書かなければならないので、少しずつ複雑になっていきますが、何度も同じスクリプトを作って練習をすることで、慣れていくようにすると良いでしょう。

FuelPHPによるMVCプログラミング入門

このコースでは、PHPのフレームワークのひとつであるFuelPHPを紹介していきます。フレームワークとはスクリプト開発における「足場」となるもので、近年のスクリプト開発においては非常に一般的な存在となっています。高速な開発スタイルをぜひとも身に付けていきましょう。

6時間19分 (47 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月12日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。