概要
- laravel-dataにて受け取るリクエストのデータ構造を定義する方法をまとめる。
方法
-
下記の情報がリクエストボディーで送られてくるとする。
{ "name": "Foo Bar", "age": 26 }
-
上記のデータ構造をlaravel-dataを用いて定義してみる。
-
下記のクラスを定義する。
app/Http/Requests/PostUserRequest.php
-
下記の様にリクエストクラスを記載する。(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 ) { } }
-
あとは下記の様にリクエストボディーを受け取るコントローラーの関数の引数に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; } }