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

バリデーションでチェック1

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
情報を入力するフォームを制作する場合、入力チェックをする「バリデーション」はよく行う作業です。FuelPHPでは、Validationオブジェクトを使うことで簡単にバリデーション処理を入れることができます。
講師:
12:19

字幕

ここでは validation で入力チェックをするという事でvalidation 所謂フォームに入力された内容が正しいかどうかを確認するという作業を行ってみたいと思います。よくこういったお問い合わせフォームなどの入力フォームではvalidation の作業をよく行いますがFuelPHP を使った場合validation の機能が標準で備わっているので非常に簡単にスクリプトを作ることができます。では、まずはファイルの構成を見ていきましょう。今回は lesson05-04ということでfuelupclassescontroller にコントローラー を1つ準備してあります。contact.php と言いましてContoller_Template を継承した contact という名前のコントローラーを作っています。アクションは2つありましてaction index とaction check です。それぞれ、contact index とcontact check というview を読み込んでいます。それぞれの view は入力画面contactindex.php が入力画面です。そして、check.php が確認画面という形でそれぞれ必要な php が埋め込まれています。 そして、template.php というファイルが全体の見た目を司っておりpublic フォルダーの中に画像や CSS などの素材が備わっています。では、まずはその画面を見てみましょう。こちら MAMP の環境設定をlesson5-4 public にドキュメントルートを合わせましてweb ブラウザからこちらlocalhost 8888/contact にアクセスをします。この様なフォームが出てきますが現状では入力チェックなどは一切行われていませんので送信するボタンをクリックするとこの様に確認画面へジャンプしてしまいます。ここで確認画面にジャンプする前にこの入力画面で書く必須項目のチェックをしてそして送信するボタンを押したときもし異常が見つかればここにエラーメッセージを表示するというようなスクリプトを組んでみたいと思います。ではスクリプトを変更していきましょう。まずこちらlesson05-04 の fuelup のclassescontroller にContact というファイルがあるのでこちらを編集していきます。そして action_index にvalidation の処理を含めていきたいと思います。 validation はこちらValidation というオブジェクトを割り当てます。そして、今この $val というのはvalidation という意味ですけれどもこの val に対してadd という要素を付け足すメソッドを呼び出します。ここでは myname ということでお名前です。そして、このお名前という要素にはadd_ruleこちらここには何もついていないので気を付けてください。このまま続いています。- add_rule としてこの名前に required必須項目であるというルールを与えています。まずは少しこちらで確認してみましょう。その前にまず view を切り替える必要があります。今こちら views のcontact index.phpこのファイルはジャンプ先としてcontact/check が指定されてしまっています。そのため、この状態ですとこの送信するボタンをクリックしたときに直接 Check へジャンプしてしまいますのでせっかく Validation を作ってもvalidation は機能しません。そこでこの view のファイルのジャンプ先これを contact の index に変更しておきます。 これによりこのフォームは送信するボタンをクリックしても同じファイルが呼び出されます。これでこのファイル上で入力の内容が正しい場合にcheck に移動するというような処理に変えていきたいと思います。ここで定義した validation の処理というのはまず簡単に書くとval の run と記述する事でその validation を実際に実行することができますがただし、ここで注意が必要なのがこの index という画面は入力画面もかねているためこの val run というのを常に実行してしまっては入力画面をただ表示したい場合でもエラーの処理が発生してしまいます。そこで、この $val run というのはこの送信するボタンがクリックされた時にだけ実行するというような処理にしなければなりません。その送信するボタンが押されたかというのを判定するのはif として input object のpost の submitこれが値が入っているかというのを確認することで送信ボタンがクリックされたかというのを判定することができます。では、これでやってみましょう。val run としますとエラーが起こっていればこの val というオブジェクトには様々なエラーメッセージなどが入ってきます。 そして、もしすべてのチェックが通過するとこの run というのはtrue というのを返すという処理が発生するためその run が上手くいったかどうかというを判定することで次のチェック画面にジャンプして良いのかどうかというのを変えることができます。それでは、実際に実装していきましょう。ここでは、if の val run とします。これにより今作った validation がすべて正しく通過すればこの条件は満たされるtrue という状態になりますのでその時にチェック画面に移動するようにします。画面を移動するためにはリダイレクトという処理を行いますがここでは response オブジェクトのredirect というメソッドを使いcontact の check にジャンプをします。まずはこれで動きを確認してみましょう。こちらまずはトップ画面にアクセスします。そして名前の所に何も記入せずに送信するボタンをクリックするとこのようにもう一度入力画面が表示されました。そして、ここに名前をきちんと入力して送信するボタンをクリックするとこの様にチェック画面に移動しています。ここで確認画面が一度正しく動かなくなりますがこれはここで redirect という処理で次の画面に移動しているためにいわゆるポスト値といわれるフォームの入力の値が無くなっているからです。 このあたりは session 等を使って解決しなければなりませんがこのレッスンでは一度割愛したいと思います。ここでは、validation の処理の解説にとどめておきます。では引き続き validation の処理の解説を続けていきましょう。ここでは、run が正しく動かなかった場合このようにもう一度入力画面に戻されます。ただし、この時この val というオブジェクトには様々な値がセットされています。そのためこの val の値をview に渡してview の方でエラーメッセージが表示されるようにしましょう。ではこの validation の結果をview に渡すためにここではこの contact のindex を呼び出す前でdata という変数を作りこちらの val に今の validation のオブジェクトを渡します。そして、data を渡していきましょう。しかし実はこのスクリプトを書くと正常に動いていてもこちらこの様なエラー画面が表示されるはずです。これはなぜかと言いますとこの view への値というのはオブジェクトなどを渡すことができません。そのため、これを渡せるようにするためには少し設定を変更する必要があります。 実際にやってみましょう。こちら app の config フォルダの中に入っているconfig.php を編集します。この中にこちら whitelisted_classes という設定があります。ここに validation もwhitelistつまり、オブジェクトとして渡せる物の中に含めたいというのを記述します。fuel\\core\\ の後validation と書きます。これでこのwhitelist_classes の中にvalidation というクラスが含まれるようになりましたのでオブジェクトをそのまま渡せるようになります。もう一度画面を表示するとこのように正常に view が表示されました。この whitelist ですけれどもあまりむやみに増やすと危険性が増してしまいますので必要最低限のものだけをその時々に応じて設定するようにしましょう。では view の方を作り込んでいきます。今 val という変数のvalidation のオブジェクトが渡されてきましたのでこれをこちら input の画面つまり、index.php に実装していきます。ここでは、このお名前のテキストフィールドの下の所にエラーメッセージを表示するようにしたいのでこの5行目の td の所を変更していきます。 もし、この myname という欄でエラーが発生していた場合val のエラーの myname というこちらのメソッドがメッセージを出力してくれます。そのため、まずこのerror の method が戻り値ですね、値があるかどうかというのを判定する事でエラーが発生しているかどうかを確認することができます。つまり、この様な形になります。これでもし myname にエラーが発生していたらという条件が作れましたのでここに class を割り当てたp 要素を出力してここで val の error のmyname を出力していきます。これでスクリプトが完成です。実際に動作させてみましょう。こちら index を表示してお名前の所に何も記入しない状態で送信するボタンをクリックしてみます。すると、このようにエラーメッセージが表示されました。文字が赤くなっているのはこのclass error というものにstylesheet が割り当てられているためです。見ていただくと分かる通りエラーメッセージが表示されているんですけれども残念ながら英語のメッセージになってしまっています。これを日本語にする方法というのをこの後ご紹介していきましょう。

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

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

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

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

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

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