I noticed that in Laravel 5.6, my session variable isn't passing to my middleware until the second page refresh.
Middleware: Let's say you have this middleware called ViewData that shares variables to the view.
public function handle($request, Closure $next) {
$setHandle = session('setHandle')[0];
$account = AccountUser::where('handle', '=', $setHandle)->first();
view()->share('account', $account);
return $next($request);
}
Controller: The Controller sets the setHandle session variable then returns a view:
public function add()
{
session()->forget('setHandle');
session()->push('setHandle', $setHandle);
return view('account.add');
}
Reference in my View My view will then have a reference to variables from this middleware.
<a class="navbar-brand brand-logo text-light" href="{!! url('account/'.$account->whatever) !!}">{!! $account->whatever !!}</a>
The problem is the first return view is returned with the old setHandle variable, when I refresh again it returns the new account with the setHandle variable.
I thought it may have to do with where my middleware is set, but my viewData middleware is being set after the StartSession middleware, so I thought the session would be refreshed after the middleware is called.
\Illuminate\Session\Middleware\StartSession::class,
'App\Http\Middleware\ViewData',
Any help would be appreciated.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire