作成日:2019-03-31, 更新日:2019-04-03
基本
・コントローラーで引数で受取る(requestインスタンス)
・ファサードを使う
・ヘルパー関数を使う
調べると「requestインスタンス」と「ファサード」のどちらかを使う人が多い。
個人的に「(その変数は)どっから出てきた?」っていうのが好きじゃない。
出所を調べればいいんだろうけど、それが面倒。
→個人的にファサードをメインにして使う(予定)。
requestインスタンス
▼コントローラーで引数にrequestインスタンスを使う
public function 〇〇(Request $request) { $hoge = $request->get(〇〇〇); }
ファサード
・「\Request::〇〇〇()」を使う
ヘルパー関数
・「$all = request();」を使う
(ファサードで)値の取得
・「\Request::input()」を使う
※ルーティングでmethod指定しているので取得時は気にする必要なし
// <input name="hoge">の値の取得 $a = \Request::input('hoge'); // 値が無ければ「$a」は「null」 // <input name="hoge">の値の取得 $b = \Request::input('hoge', 〇〇〇) // 値が無ければ「$b」は第2引数がセット
(ファサードで)対象があるかチェック
・「\Request::has()」を使う(※「\Request::exists('hoge')」でもいける感じ)
// <input name="hoge">があるかチェック if ( \Request::has('hoge') ) { // 要素アリ(値は見ていない) }
他(ファサード)
・\Request::server()、\Request::server(キー, 初期値) - サーバー変数($_SERVER)
・\Request::header()、\Request::header(キー, 初期値) - ヘッダー
・\Request::hasHeader(キー) - ヘッダーにキーが含まるかチェック
・\Request::bearerToken() →「\Request::header('Authorization')」が「Bearer 」から始まるなら以降の値
・\Request::all() →ファイルも含めて全部取得
・\Request::keys() →ファイルも含めて全部のキーを取得
・\Request::except(キーの配列) →対象外を取得
・\Request::hasAny(キーの配列) →どれか一つでも含まれていたらtrue
・\Request::filled(キーもしくはキーの配列) →値が一つでも空白ならfalse
・\Request::anyFilled(キーもしくはキーの配列) →値が一つでも空白じゃなければtrue
・\Request::isEmptyString(キー) →値が無い、false、空白ならtrue
・\Request::query()、\Request::query(キー, 初期値) →クエリ文字列項目を取得
・\Request::post()、\Request::post(キー, 初期値) →payloadを取得(payload=余計な情報を省いたデータ?)
※まだまだ色々とあった→「vendor\laravel\framework\src\Illuminate\InteractsWithInput.php」を確認
Bearer トークン:\Request::bearerToken()
「Bearer トークン」って何だろうと思って調べたらRFC6750で定められたヘッダの仕様だそうだ。
→使える値は token68 文字(ASCII アルファベット、 ASCII 数字、 「-」「.」「_」「~」「+」「/」(末尾に0個以上の = があってもよい) )
・トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた