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

リレーションを張る

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
関連するテーブル同士を接続するのが、リレーションです。FuelPHPでは、このリレーションも非常に簡単に処理をすることができます。ここでは、oilコマンドを使って、リレーションを張ってみましょう。
講師:
11:32

字幕

ここではリレーションを貼るとしましてFuelPHP を使って複数のテーブルを接続するリレーションというものについて解説していきたいと思います。ではプロジェクトを見ていきましょう。まずこちらlesson06-04 という所にFuelPHP をセットアップしました。そして fuel ディレクトリの app の中のconfig の db.php にMySQL のデータベースへの接続を記載しています。hostname、 database やusername、 password などを設定してtype を mysql としました。データベースは fuelphp という名前ですけれどもこちらはこのようにデータベースのスペースは作ってテーブルは一つも作っていないという状態です。ではここから作業を始めていきましょう。まずはこちらターミナルまたはWindows の コマンドプロンプトを起動します。そしてこちらの今作ったプロジェクトのディレクトリにcd(チェンジディレクトリ)で移動していきます。これで oil コマンドを実行できるようになりました。ここでは記事のデータベースのテーブルがあってそれに対するコメントを記載するデータベースのテーブルを準備しお互いをリレーションを貼るという形にしてみましょう。 では php の oil、g としてまずはモデルを作成します。ここでは article としましてtitle を varchar の 500それから body を text という形でまずは記事を製作するモデルを作成しましょう。それから oil で今度はそれに対する comment を作っていきます。comment には article id としてどの記事に対するコメントなのかということとcomment の内容が記録できます。ではこちらも作成していきましょう。これでまずは oil の define のmigrate で実際のテーブルを作成していきます。するとこのような形で articles というテーブルtitle と body があります。それから comments というテーブルこちらは article id と comment があります。このようなテーブルが出来上がりました。では例えば articles に対して今日はこんなことがありましたということでちょっと適当なエントリーを入れてみましょう。created_at と updated_at とは本来であれば今のタイムスタンプを入れるんですけれどもここではひとまず適当に数字を入れてこのように挿入します。 もう1件入れておきましょう。こちらも適当なデータを入れておきます。続いて comments の方にそのコメントを入れていきます。挿入としまして例えばここではarticle id 1 番で「1番目の投稿へのコメントです」としましょう。これもこのように適当に設定していきます。もう1件入れておきます。同じくこのようにして適当に入れていきます。さらにもう一件入れます。今度は article の2番目としましてこのようにします。これでこういった形でarticles が1件目2件目と出ましてcomments がこのような形で1件目へのコメントが2つそれから2件目のコメントが1つという形で挿入されました。ではこちらでモデルをリレーションを張れるようにしていきたいと思います。今 oil コマンドで自動的に作成されたモデルがapp の classes の model に出来上がっています。article と comment になります。ここでは article の model がこの comment の model を内包するような形になりますのでこちらの article.php を開いてここに protected static $_has many とします。 そして array としましてここでは comments をリレーションにします。そして key_from としましてここでは article の方の key をまず設定します。そして model_to としましてModel_Comment です。さらに key_to で article id としましてcascade_save を false にします。そして cascade_delete を true にしましょう。これでリレーションの設定が終わりました。article というこちらのモデルはhas many としましてこの1件の article に対して複数件の子どもを持つという意味です。ここでは comments ということでこの Model_Comment の内容がarticle_id と この article の id でつながりますとcascade_save というのはこちらのモデルを save した時にそれに付随して comment の方もsave されるかどうかの設定ですがここでは false としました。そして cascade_delete、こちらは記事を削除した時に comment も一緒に削除されるかどうかですがこちらは true としました。 これによってリレーションが張られたというわけです。では次に controller を作ってそのリレーションが張られた様子を確認していきましょう。controller もここでは oil を使って確認していきたいと思います。oil の g で controller としましてここでは article の controller を作っていきます。中に入れるのは index だけで良いでしょう。ではこちらで作成します。すると controller と view のファイル群が出来上がります。controller に article.php そしてviews の中に article の index という形でファイルが出来上がりました。ではまずは controller を編集していきましょう。こちら action の index が定義されていますけれどもこの中で $data を array とし$data の rows としてここでは model_Article のfind の all とします。これで rows の中に検索した結果がすべて入ってきますのでこのデータを受け渡しましょう。では今度は view を簡単に作っていきます。 view はこちら views の中のarticle の中の index がありますのでこちらから作っていきましょう。views ではここでは foreach の rows をrow で繰り返します。先程 controller の方でrows にその article の情報をすべて格納しましたので、その rows を受け取ってviews の方でその rows がすべて終わるまで$row という所に入れながら繰り返していくという命令になります。ここでは h2 としましてprint row の title を表示します。それから p としてprint の row の body を表示しましょうとなります。後はこちらで endforeach という形で繰り返しましょうとなります。これでスクリプトとしては完成なんですが、ちょっとまずは一度動作を確認してみましょう。ドキュメントルートを lesson06-04 としましてこちらで動作を確認します。するとこのような形でClass 'Orm\Model' がnot found と出てしまいます。実はこの oil コマンドを使って製作したモデルは基本的に Orm model というものを継承したモデルになってしまいます。 そしてこの Orm model というのは標準では使用できない形になっていますのでconfig.php の方でその設定を変更しなければなりません。では config を書き換えていきましょう。fuel の app の configこちらの config.php を開いていきます。するとこのように 227 行目付近にpackages とありまして標準で Orm はこのようにコメントアウトされています。そこでこのコメントアウトを外してあげるとOrm が有効になります。ではこれで改めて画面を確認してみましょう。Enter を押しますとこのように1件目と2件目の投稿が表示されました。ここまでは普通のスクリプトですけれどもここからリレーションを張っている意味が出てきます。リレーションを張っていると実はこの中に今度は h3 として comment としてみましょう。そして ul としてここで foreach とします。row の comments をc という形で受け取りましょう。そして li の print でc の commentというような形で記述をしていきます。これでスクリプトが作れましたので実際に表示を確認してみます。 するとこのように1件目の投稿には1番目の投稿へのコメントですと1件目の投稿の2つ目ですという形でコメントがリストアップされました。そして2件目の投稿の下にも2件目への投稿のコメントがリストアップされています。このようにリレーションを張っていると特にこちらではそのコメントを一緒に検索してくださいというような命令はしていないんですけれども、自動的にコメントも引っ張って格納してくれるようになります。そのため非常に検索の処理や表示の処理が簡単になるというわけです。

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

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

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

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

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

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