🚒

Laravel Requestクラスから型を指定してデータを取得する

2022/10/28に公開

はじめに

Requestクラスから値を取得し、何かのメソッドの引数に指定した時に
declare(strict_types=1);の指定が入っていると型が一致しないで怒られるので
毎回キャストを入れるのが面倒になっている今日この頃

何かないかとlaravel/frameworkのPull Requestを見ていたら1つ発見があったのでメモを残しておきます。

発見したPull Request

こちらです。
https://github.com/laravel/framework/pull/44239

intfloatにキャストした値を取得するメソッドを追加しますって内容です。

これが

intval($request->input('some_int_value'));
(int) $request->input('some_int_value');

floatval($request->input('some_float_value'));
(float) $request->input('some_float_value');

こうなります。

$request->integer('some_int_value');

$request->float('some_float_value');

地味ですが、毎回キャストを書くよりはメソッドで指定できる方が個人的には嬉しいです。

この内容はLaravel9.32で入っていたようです。

また、既にboolean、日付なども取得可能だったようですね。
(知らなかった、、、)
https://laravel.com/docs/9.x/requests#retrieving-boolean-input-values

まとめ

困った時はGithubのIssuesやPull Requestを見た方がいいですね。
何かしらの解決策が書かれていたりします。

また、公式ドキュメントも新たな発見があったりと見返すのは大事だなって思いました。

Discussion