LoginSignup
2
2

More than 1 year has passed since last update.

Spatie laravel-data ライブラリ リクエストを定義する

Posted at

概要

  • laravel-dataにて受け取るリクエストのデータ構造を定義する方法をまとめる。

方法

  1. 下記の情報がリクエストボディーで送られてくるとする。

    {
      "name": "Foo Bar",
      "age": 26
    }
    
  2. 上記のデータ構造をlaravel-dataを用いて定義してみる。

  3. 下記のクラスを定義する。

    • app/Http/Requests/PostUserRequest.php
  4. 下記の様にリクエストクラスを記載する。(Dataクラスの継承を忘れずに)

    app/Http/Requests/PostUserRequest.php
    <?php
    
    namespace App\Http\Requests;
    
    use Spatie\LaravelData\Data;
    
    class PostUserRequest extends Data
    {
        public function __construct(
            public string $name,
            public int $age
        )
        {
            
        }
    }
    
  5. あとは下記の様にリクエストボディーを受け取るコントローラーの関数の引数にformRequestのときと同じように記載すれば良い。(コントローラー内部の処理は任意)

    app/Http/Controllers/UserContrller.php
    <?php
    
    namespace App\Http\Controllers;
    
    use App\Http\Requests\PostUserRequest;
    
    class UserController extends Controller
    {
        public function post(PostUserRequest $request)
        {
            return $request;
        }
    } 
    

参考文献

2
2
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
2
2