WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
ログインフォームから値を受け取る

ログインフォームから値を受け取る

このエントリーをはてなブックマークに追加

1. 前回作成したログインフォームからどのような値が送信されているのかを調べるために、postIndex()を下記のように作成します。

laravel/app/controllers/LoginController.php

public function postIndex(){
 dd(Input::all());
 }
  • dd()は、指定された変数の内容を表示し、スクリプトの実行を停止するヘルパー関数です。PHPのvar_dump()関数と同じような働きをします。※正確には、return var_dump();と同じ働きをします。
  • Input::allメソッドは、フォームから送信された全入力値の連想配列を取得します。

2. フォームから、値を入力して送信してみます。

laravel010

3. 下記のように表示されました。

laravel011

4. フォームから送信されたデータには”_token”、”email”、”password”、”remember”があります。このうちの”_token”は、前回作成したフォームの中には含まれていませんでした。

5. laravelのフォームはフォーム内に隠しフィールド(hidden)としてトークンを作成しなくても、自動的にフォームから送信されるような仕様に変更されています(※Form::openで開始した場合)

6. 『Formクラスの基礎』の中で、CSRF対策として明示的にForm::tokenメソッドで、トークンを隠しフィールドとして追加するように記述していますが、この処理は不要となります。

7. ですので、フォームを作成するときには、トークンについては一切考慮する必要はありません。

8. 只、受け取ったコントローラ内で処理する必要がありますが、実際問題としてこの処理もフィルターに任せることによりCSRF対策に関しては全く考慮する必要がなくなります。

フォームからの値の受け取り方

フォームから値を受け取るには、下記のようなInputクラスを使用します。

  • Input::get(‘フィールド名’)
    指定のフィールドの値のみを取得します。
  • Input::all()
    フォーム送信された全てのフィールド名と値を連想配列として取得します。
  • Input::only(‘フィールド1′,’フィールド2’,….)
    フォームから送信されたデータのうち、指定されたフィールド名と値の連想配列を取得します。
  • Input::excetp(フィールド1,フィールド2,….)
    フォームから送信された全てのデータの中から、引数に指定されたフィールド以外のデータのフィールド名と値の連想配列を取得します。
  • Input::has(‘フィールド名’)
    指定のフィールド名の入力値が存在するかどうかを確認するのに使用します。

ちょっと横道にそれましたが、次回こそは、Sentry2を使用してのログイン方法をご紹介します。

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です