diff --git a/README.md b/README.md index 1aeed2e..8860023 100644 --- a/README.md +++ b/README.md @@ -118,14 +118,18 @@ This package also supports the User-ID feature. To start using the User-ID feature you've to add the ``TagManagerUserIdMiddleware`` in your 'web' middleware group directly after the ``TagManagerMiddleware``. ```php -// app/Http/Kernel.php - -protected $middlewareGroups = [ - 'web' => [ - ... - \Label84\TagManager\Http\Middleware\TagManagerMiddleware::class, - \Label84\TagManager\Http\Middleware\TagManagerUserIdMiddleware::class, - ... +// bootstrap/app.php + +return Application::configure(basePath: dirname(__DIR__)) + ->withRouting( + // + ) + ->withMiddleware(function (Middleware $middleware): void { + $middleware->web(append: [ + \Label84\TagManager\Http\Middleware\TagManagerMiddleware::class, + \Label84\TagManager\Http\Middleware\TagManagerUserIdMiddleware::class, + ]); + }) ``` By default the 'id' of the User model will be used. You change the key in ``config/tagmanager.php``. diff --git a/src/Http/Middleware/TagManagerMiddleware.php b/src/Http/Middleware/TagManagerMiddleware.php index 08392aa..6d66e15 100644 --- a/src/Http/Middleware/TagManagerMiddleware.php +++ b/src/Http/Middleware/TagManagerMiddleware.php @@ -19,18 +19,21 @@ public function __construct(TagManager $tagManager, Session $session) $this->session = $session; } - /** @return mixed */ - public function handle(Request $request, Closure $next) + public function handle(Request $request, Closure $next): mixed { - if ($this->session->has(config('tagmanager.session_name'))) { - $this->tagManager->set($this->session->get(config('tagmanager.session_name'))); + $sessionName = config('tagmanager.session_name'); - $this->session->pull(config('tagmanager.session_name')); + if ($this->session->has($sessionName)) { + $this->tagManager->set( + collect((array) $this->session->get($sessionName, [])) + ); + + $this->session->pull($sessionName); } $response = $next($request); - $this->session->flash(config('tagmanager.session_name'), $this->tagManager->get()); + $this->session->flash($sessionName, $this->tagManager->get()); return $response; }