LoginSignup
36
42

More than 3 years have passed since last update.

PHP/Laravel5のRequestクラス覚え書き

Last updated at Posted at 2019-05-07

Webアプリケーションフレームワーク LaravelIlluminate\Http\Request の書き方メモ。
リファレンス的なものです。

Controller基本形
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function store(Request $request)
    {
        $name = $request->input('name');
        //
    }
}
View基本形
@extends('layouts.app')
@section('body')
<form method="POST" action="{{ route('XXXX') }}">
  @csrf
  <input type="text" name="name" value="">
  // 
</form>
@stop

入力の取得

  • 動的プロパティで入力を取得
    $name = $request->name;

  • 全入力を連想配列で取得
    $input = $request->all();

  • アップロードファイルを除いて、全入力を連想配列で取得
    $input = $request->input();

  • すべてのクエリストリングを連想配列で取得(上記のallやinputにもクエリストリングは含まれる)
    $input = $request->query();

  • アップロードファイルの取得
    $file = $request->file('csv');

  • "name" の入力を取得
    $name = $request->input('name');

  • デフォルト値を指定して取得
    $request->input('name', 'Tom');

  • "name" と "password" のみ取得
    $input = $request->only('name', 'password');

  • "password" 以外を取得
    $input = $request->except('password');

  • リクエストに値が存在するか判定
    $request->has('name')

  • すべて存在するか判定
    $request->has(['name', 'email'])

  • リクエストに値が存在し、かつ空でないか判定
    $request->filled('name')

フラッシュデータ(次のリクエストの間だけ利用できるデータ)の保存

  • すべてをフラッシュデータに保存
    $request->flash();

  • "name" と "email" のみフラッシュデータに保存
    $request->flashOnly(['name', 'email']);

  • "password" を除いてフラッシュデータに保存
    $request->flashExcept('password');

セッション

  • "key" をセッションから取得
    $request->session()->get('key');

  • デフォルト値を指定してセッションから取得
    $request->session()->get('key', 'default');

その他

  • リクエストURIを返す
    $uri = $request->path();

  • HTTPメソッド名(GET、POST等)を返す
    $method = $request->method();

  • POSTメソッドか判定
    $request->isMethod('POST')

  • リクエストURIがパターンに合致するか判定
    $request->is('admin/*')

  • User-Agentを返す
    $request->header('User-Agent');

36
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
42