LaravelのビューでRequest
や$request
を使うと現在のページのルート名やURIなどを簡単に取得できる。
このReqeust::
と$request
の違いと、よく使うメソッドについてのまとめ。
目次
Reqeust::
と$request
の違い- コントローラで依存注入する例
Request
($request
)で使える便利なメソッド一覧Request
($request
)で渡されたデータの取得方法- ルートの情報を取得する方法
- ルート名の取得(
Route
を使うと簡単) Request
($request
)の中身
## `Reqeust::`と`$request`の違い どちらも同じ中身で、ページへのリクエスト情報を指している。
Reqeust::
はファサードで、どのビューでも使うことができる。
$request
は変数。これを使うにはコントローラで依存注入し、ビューに変数を渡す必要がある。
## コントローラで依存注入する例 ▼依存注入の例
class UserController extends Controller
{
public function show(int $user_id, Request $request){
return view('user.show', [ 'id'=>$user_id, 'request' => $request ]);
}
}
・アクション名(Request $request){}
依存注入。これで、ページに渡されたリクエストの情報を$requestとして関数の中で使える。
・view('ビュー名', [ 'request' => $request ])
ビューにデータを渡すには第2引数で指定する。これでビューの中で$requestが使えるようになる。
Request
と$request
の変換
基本的に入れ替えるだけ。一番最初のメソッドのつなげ方が、::
か->
で異なる。
▼ルート名の取得
Request::route()->getName()
↑↓ 同じ
$request->route()->getName()
**▼指定したルート名に一致するか調べる**
Request::routeIs('ルート名')
↑↓ 同じ
$request->routeIs('ルート名')
## `Request`(`$request`)で使える便利なメソッド一覧 ブレードの中で使える便利なメソッド
メソッド | 内容 |
---|---|
route()->getName() | ルート名の取得 |
routeIs('ルート名') | 指定したルート名と一致するか調べる。一致する場合は1 を一致しない場合は空になる。 |
is('URI') | 指定したURLと一致するか調べる。一致する場合は1 を一致しない場合は空になる。 |
url() | URLを取得する。パラメータは無視する。 |
fullUrl() | URLを取得する。パラメータも取得。 |
method() | メソッド名を取得する。 |
実例
<div>route()->getName():{{ Request::route()->getName() }}</div>
<div>routeIs()1:{{ Request::routeIs('user.show') }}</div>
<div>routeIs()2:{{ Request::routeIs('user/5') }}</div>
<div>is()1:{{ Request::is('user.show') }}</div>
<div>is()2:{{ Request::is('user/5') }}</div>
<div>url():{{ Request::url() }}</div>
<div>fullUrl():{{ Request::fullUrl() }}</div>
<div>method():{{ Request::method() }}</div>
↓ ブラウザの表示
![]() |
---|
他にもあります。Laravel公式ページ Request
## `Request`(`$request`)で渡されたデータの取得方法 フォームなどGETやPOSTメソッドで渡されたデータを取得するには`all`メソッドが使える。
※注:戻り値は配列なのでビューの中でそのまま呼び出すとエラーになる。
dump($request->all())
▼http://127.0.0.1:8000/user/5?test=dummy の例
パラメータで渡したデータがKey-Valueで取得できる。
## ルートの情報を取得する方法
Request::route()
を使うとルートの情報を配列で取得できる。
▼http://127.0.0.1:8000/user/5?test=dummy の例
### ルート名の取得(`Route`を使うと簡単) ルート名を取得する場合は`Route`ファサードを使うとより簡単に記述できる。
Route::currentRouteName()
↑↓ 同じ
Request::route()->getName()
## `Request`(`$request`)の中身 依存注入後にコントローラの関数の中で`dump($request);`を使うと、変数の中身をブラウザで確認できる。
ビューで確認した場合は@php dump($request) @endphp
で確認可能。
以上。