Laravel5 ミドルウェアを使って共通の処理を実行

  • このエントリーをはてなブックマークに追加
  • Pocket

viewにログインユーザ名を渡す等、共通の処理をMiddlewareを使って制御する方法。

環境

  • Laravel 5.2

やること

  • Middlewareを作成する
  • 作成したMiddlewareをKernelに追加する

Middlewareを作成する

今回はすべてのviewで使っているデータを渡すミドルウェアを作ってみる。

app/Http/MiddlewareにViews.phpが作成される。

デフォルトがこれ。

handle()にいろいろ追記していく。

View::share()を使って、とりあえずログインユーザ名を渡してみる。

ミドルウェアはこれでOK.

MiddlewareをKernelに追加する

ミドルウェアを作っただけでは呼べないので Kernel.php の $routeMiddleware に追記して呼び出せるようにする。

app/Http/Kernel.php

コントローラからミドルウェアを呼び出す

ベースコントローラにて middleware(‘views’) を追加する。

これでviewの中で {{$username}} が使える。

 

ただ、

この例だとユーザ名しか渡してないし、viewで {{\Auth::user()->name}} とすれば解決するのであんまり恩恵がない…

動的に変更する必要がある共通項目とかなら真価を発揮できる。

パッと思いつくのはAPIコントローラでAjax通信でなければ拒否するとか…

 

うまいこと使って行こう。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*