Requestのプロパティを加工したい
「Modelのミューテータを使えばいいじゃん!」
て言われるかもしれないけどまぁRequestの状態でとりあえず色々やりたいみたいな、ね。
ありますよね。
プロパティをなかったことにしたい
例えば$request->divisionというプロパティをなかったことにしたい場合はこう。
.php
$request->offsetUnset('division');
フィールド名(文字列)をぶち込めば消えてくれます。
ちなみにunsetしてもだめだったのでこれ一択かと。(というかオブジェクトのプロパティ消すのにunsetは使えないのか?)
プロパティを上書きしたい
フィールド名をKeyに持つ連想配列で上書きできます。
というか存在しないフィールド名を入れると新たなプロパティが作れちゃいます。
.php
$request->merge([
'start_time' => $start.':'.'00',
'end_time' => $end.':'.'00',
]);
replaceなんていうパラメータを一回空にしてからmergeするメソッドもあるみたいですね。(要検証)
リクエストのパラメータが空かどうか調べたい
2019/7/21追記
例えば、「検索条件なしで検索された時」という判定がしたい時に有用。
.php
$is_request_empty = !$request->anyFilled(array_keys($request->all()));
注意:anyFilledはLaravel5.6.12から
ラジオボタンなどがある場合はこんな感じでexceptしよう。
.php
$is_request_empty = !$request->anyFilled(array_keys($request->except('is_include_viewed_person')));
おわりに
Requestクラスの中身のぞいてたんですけどまだまだワクワクするようなメソッドいっぱいありましたので機会があったら随時更新していきます。