Ich verwende Layouts in der folgenden Weise in meinem Controller wie in der Dokumentation beschrieben (Beachten Sie, dass nichts zurückgegeben wird):Einstellung Response-Header in Laravel 4.2 während Layouts/Ansichten mit
public function someControllerFunction() {
$this->layout = View::make('layout');
$this->layout->content = View::make('page', $params);
}
In meinem Layout Ich habe einige cache-control
Header wie folgt:
<?php
header('Cache-Control: public');
header('Cache-Control: max-age=600');
Log::info("headers set in layout");
?>
das ist alles schön und gut und diese Header sind in der Antwort für alle Seiten in der App. Aber jetzt habe ich eine Seite, die ich möchte ausdrücklich Caching deaktivieren mit:
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
Log::info("headers set in View");
?>
Ich habe versucht, dies in meiner Ansicht platzieren, aber keine Zigarre. Mit Blick auf die Protokolle wird der php in der Ansicht ausgeführt vor, dass im Layout, die Layout definierten Header über die Sicht definierten Header.
So entschied ich mich für die „Laravel“ Art und Weise zu sehen, es zu tun und fand die docs vorschlagen, dass Sie eine Antwort wie so zurück:
return Response::view('page')->header('Cache-Control', '...');
Aber wie mache ich eine Antwort, die Layouts verwendet? Ich kann in den Dokumenten nichts davon finden.