Non riesco a capire come aggiungere intestazioni a una risposta da un middleware. Ho usato sia ->header(...)
e ->headers->set(...)
, ma entrambi dà errori. Quindi come lo fai?Come si aggiungono le intestazioni a una risposta con un middleware?
Prima ho provato con
public function handle($request, Closure $next) {
$response = $next($request);
$response->headers->set('refresh', '5;url=' . route('foo'));
return $response;
}
che è lo stesso come in Illuminate\Http\Middleware\FrameGuard.php
, ma che dà
chiamata a un set funzione membro() su un non-oggetto
Secondo ho provato con
public function handle($request, Closure $next) {
$response = $next($request);
$response->header('refresh', '5;url=' . route('foo'));
return $response;
}
ma che dà
Metodo [intestazione] non esiste in mostra.
Quindi, come si aggiungono le intestazioni di un middleware?
Provare a eseguire il debug, eseguire il codice seguente echo get_class ($ response); print_r (get_class_methods ($ response)); Cosa vedi? –
Seconda opzione funziona con '$ response-> header-> set ('refresh', '...')' invece di '$ response-> header ('refresh', '...')'. [Spiegazione] (http://stackoverflow.com/a/29289684/3549317) – cespon