5
6

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 3 years have passed since last update.

【Laravel】ブレードの中でルート名やURLを取得する方法。Request::の中身やメソッドと$reqeustとの違い

Posted at

LaravelのビューでRequest$requestを使うと現在のページのルート名やURIなどを簡単に取得できる。

このReqeust::$requestの違いと、よく使うメソッドについてのまとめ。

目次

  1. Reqeust::$requestの違い
  2. コントローラで依存注入する例
  3. Request$request)で使える便利なメソッド一覧
  4. Request$request)で渡されたデータの取得方法
  5. ルートの情報を取得する方法
  6. ルート名の取得(Routeを使うと簡単)
  7. Request$request)の中身

## `Reqeust::`と`$request`の違い どちらも同じ中身で、ページへのリクエスト情報を指している。

Reqeust::はファサードで、どのビューでも使うことができる。

$requestは変数。これを使うにはコントローラで依存注入し、ビューに変数を渡す必要がある。


## コントローラで依存注入する例 ▼依存注入の例
:UserController.php
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() メソッド名を取得する。

実例

.blade.php
<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>

 ↓ ブラウザの表示

image.png

他にもあります。Laravel公式ページ Request


## `Request`(`$request`)で渡されたデータの取得方法 フォームなどGETやPOSTメソッドで渡されたデータを取得するには`all`メソッドが使える。

※注:戻り値は配列なのでビューの中でそのまま呼び出すとエラーになる。

dump($request->all())

http://127.0.0.1:8000/user/5?test=dummy の例

image.png

パラメータで渡したデータがKey-Valueで取得できる。


## ルートの情報を取得する方法

Request::route()を使うとルートの情報を配列で取得できる。

http://127.0.0.1:8000/user/5?test=dummy の例

image.png


### ルート名の取得(`Route`を使うと簡単) ルート名を取得する場合は`Route`ファサードを使うとより簡単に記述できる。
Route::currentRouteName()

↑↓ 同じ

Request::route()->getName()

## `Request`(`$request`)の中身 依存注入後にコントローラの関数の中で`dump($request);`を使うと、変数の中身をブラウザで確認できる。

ビューで確認した場合は@php dump($request) @endphpで確認可能。

image.png


以上。
5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?