概要
ログインユーザーの情報などサイト全体で常に使うデータがあると思います。常に必要なデータmiddlewareでViewに渡しておくことで処理を共通化出来ます。
手順
- middlewareを作成
- middlewareを登録
middlewareを作成
middlewareを新規作成します。
php artisan make:middleware SetUser
ViewFactoryに変数を渡しておくと、デフォルトの値として入ります。
app\Http\Middleware\SetUser.php
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\AuthManager;
use Illuminate\View\Factory;
class SetUser
{
public function __construct(Factory $viewFactory, AuthManager $authManager)
{
$this->viewFactory = $viewFactory;
$this->authManager = $authManager;
}
public function handle($request, \Closure $next)
{
$user = $this->authManager->user();
$this->viewFactory->share('user', $user);
return $next($request);
}
}
middlewareの登録
Kernel.phpにmiddlewareを登録します。
app\Http\Kernel.php
<?php
class Kernel extends HttpKernel {
...略...
protected $routeMiddleware = [
...略...
'setUser' => \App\Http\Middleware\SetUser::class,
];
}