Illuminate\Http\Requestについて雰囲気でやっていたので個人的にメモした
Controller内でRequestをいい感じに使えることができるように諸々まとめた
リクエストされたURLを知りたいとき
クエリ文字列が必要ない場合は、以下
$url = $request->url();
クエリ文字列が必要な場合は、以下
$urlWithQueryString = $request->fullUrl();
パスのみが必要な場合は、以下
$uri = $request->path()
リクエストされたURL/メソッドによって処理を分けたいとき
if ($request->is('admin/*')) {
// 処理
}
名前付きルートに一致するか確かめるときは、以下
if ($request->routeIs('admin.*')) {
// 処理
}
リクエストメソッドが知りたいときは、以下
$method = $request->method();
リクエストメソッドが指定のものか知りたいときは、以下
if ($request->isMethod('post')) {
// 処理
}
URLのクエリ文字列にデータを追加したいとき
$request->fullUrlWithQuery(['type' => 'phone']);
リクエストしてきたIPアドレスが知りたいとき
$ipAddress = $request->ip();
リクエストに含まれる入力データが知りたいとき
全て欲しいとき
配列として取得したいときは、以下
$input = $request->all();
連想配列として取得したいときは、以下
$input = $request->input();
特定のものが欲しいとき
$name = $request->input('name');
inputメソッドは2番目の引数としてデフォルト値を渡すことができる。指定した入力値がリクエストに存在しない場合、この値が返される。
$name = $request->input('name', 'Sally');
配列入力を含むフォームを操作する場合は、「ドット」表記を使用して配列にアクセスすることができる
$name = $request->input('products.0.name');
$names = $request->input('products.*.name');
論理入力値の取得
$archived = $request->boolean('archived');
リクエストに値が存在するかを確かめたいとき
リクエストにそもそもnameというkeyが存在しているのか?
if ($request->has('name')) {
//
}
指定されたすべての値が存在するかどうかを判別することもできる。
if ($request->has(['name', 'email'])) {
// 処理
}
指定値のいずれかが存在する場合、hasAnyメソッドを利用することができる。
if ($request->hasAny(['name', 'email'])) {
// 処理
}
こんなこともできたりする
$request->whenHas('name', function ($input) {
//
});
値がリクエストに存在し、空でないことを確認したいとき
if ($request->filled('name')) {
//
}
特定のキーがリクエストに含まれていないかを判定したいとき
hasメソッドの逆(?)
if ($request->missing('name')) {
//
}
入力値を一時保持後のリダイレクトするなどしたいとき
return redirect('form')->withInput();
return redirect()->route('user.create')->withInput();
return redirect('form')->withInput(
$request->except('password')
);
上記のデータを取得したいとき
$username = $request->old('username');
まとめ
いい感じに使えるようになりたい
Author And Source
この問題について(Illuminate\Http\Requestについて雰囲気でやっていたので個人的にメモした), 我々は、より多くの情報をここで見つけました https://qiita.com/Takatoshi_Hiki/items/a4671c1d2ca10500c29c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .