12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LaravelのRequestいろいろ

Last updated at Posted at 2019-05-22

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クラスの中身のぞいてたんですけどまだまだワクワクするようなメソッドいっぱいありましたので機会があったら随時更新していきます。

12
10
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
12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?