Où puis-je définir des en-têtes dans laravel
Je veux mettre des en-têtes comme array('Cache-Control'=>'no-cache, no-store, max-age=0, must-revalidate','Pragma'=>'no-cache','Expires'=>'Fri, 01 Jan 1990 00:00:00 GMT');
pour tous mes points de vue, actuellement je le fais ce dans tous les contrôleurs, tandis que le retour de vues, comme
$headers=array('Cache-Control'=>'no-cache, no-store, max-age=0, must-revalidate','Pragma'=>'no-cache','Expires'=>'Fri, 01 Jan 1990 00:00:00 GMT');
Redirect::to('/',301,$headers);`
Donc au lieu d'écrire ceci pour chaque et chaque itinéraire peut-il être fait dans la portée globale, de sorte que les en-têtes sont fixées pour chaque vue.
J'ai essayé de régler les en-têtes par la création d'après le filtre, mais ne pas le faire fonctionner.
Quelqu'un peut me dire où puis-je définir les en-têtes pour tous mes points de vue?
Mise à JOUR
Un de mes fichier de vue méta contenu
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
Maintenant quand j'utilise Redirect::to('/',301,$headers)
L'en-tête dans firebug est
Cache-Control max-age=0, must-revalidate, no-cache, no-store, private
Connection Keep-Alive
Content-Type text/html; charset=UTF-8
Date Tue, 09 Jul 2013 14:52:08 GMT
Expires Fri, 01 Jan 1990 00:00:00 GMT
Et quand j'utilise Redirect::to('/');
L'en-tête dans firebug est
Cache-Control no-cache
Connection Keep-Alive
Content-Type text/html; charset=UTF-8
Date Tue, 09 Jul 2013 14:52:08 GMT
Vous devez vous connecter pour publier un commentaire.
Il ya un couple de façons différentes que vous pourriez faire cela - tous ont des avantages/inconvénients.
Option 1 (simple):
Depuis le tableau est juste des données statiques - il suffit de mettre manuellement les en-têtes de vos listes directement - c'est à dire ne pas passer à partir de n'importe où - code directement dans votre point de vue.
Option 2: Utilisation vue compositeurs. Vous pouvez utiliser une Application avant de filtre à lier l'en-tête à toutes les vues de votre application.
Alors juste l'écho de l' $headers de votre point de vue(s).
Remarque: vous devez laisser le point de vue de définir vos en-têtes - c'est pourquoi nous sommes "passer" de l'en-tête en vue pour Laravel à manipuler. Si vous essayez et de sortie de l'en-tête d'un filtre ou quelque chose, vous vous causer des problèmes.
Modifier l'Option 3: je viens de découvrir sur ce - que vous pouvez essayer ce
Dans Laravel 5, à l'aide du Middleware, la création d'un nouveau fichier, la modification d'un fichier existant:
Nouveau fichier: app/Http/Middleware/AddHeaders.php
Modifier le fichier existant app/Kernel.php
Et vous êtes fixés.
Dans Laravel 4, cela fonctionne pour moi:
Dans filters.php:
Comme:
Dans Laravel 5 vous pouvez modifier /public/index.php ligne 55 et de définir votre en-tête pour l'ensemble de l'application:
avec:
pour essample.
protected $charset='ISO-8859-1';
après " public $original;`De travail sur Laravel 4.2. Je suis à l'aide de filtres pour cela, donc dans filters.php j'ai:
Que j'attache à ce filtre pour les routes ou les contrôleurs. Contrôleur de joint ressemble à ça pour moi:
Ce filtre est joint à l'afterFilter.
after
crochet pour définir les en-têtes http. par exemple,Route::get('/hello', array('after' => 'no-cache', 'uses' => 'HelloController@index'));
Pour Laravel >= 5.2 encore, à la suite de @Amarnasan réponse , bien que j'ai utilisé le mien pour les appels API
Dans Laravel 5, à l'aide du Middleware, la création d'un nouveau fichier, la modification d'un fichier existant:
Nouveau fichier: app/Http/Middleware/AddHeaders.php
Modifier le fichier existant app/Kernel.php de sorte que vous pouvez utiliser avec chaque itinéraire
Alors vous pouvez l'utiliser comme pour les itinéraires individuels ou de groupes
Pour les futurs lecteurs à l'aide de Laravel 5.x, cela peut être manipulé de la boîte sans avoir besoin de créer une coutume middleware.
Laravel a la
response()
méthode d'assistance, qui vous pouvez de la chaîne d'en-têtes très facilement.Lire plus à ce sujet dans le la documentation, car il peut gérer la fixation d'un certain nombre de choses;
cookies
,views
, et plus encore.