Laravel возвращает ответ с параметрами

Я хочу сделать что-то вроде этого:

return Response::view('survey.do')
//->with('theme',$survey->theme);
->header('Cache-Control', 'no-cache, must-revalidate')
->header('Expires', 'Mon, 26 Jul 1997 05:00:00 GMT');

Он говорит, что не может найти определение темы в представлении, проблема в том, когда я делаю:

View::make('survey.do')->with('theme',$survey->theme)

Это работает, но я не могу получить доступ к http response заголовок, как мне этого добиться?

2

Решение

Вместо того, чтобы использовать with а также header передать массивы, как это:

$data = array('theme' => $survey->theme);

$headres = array(
'Cache-Control' => 'no-cache, must-revalidate',
'Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT'
);

return Response::view('survey.do', $data, '200', $headres);

Это будет работать, потому что это метод подписи / заголовка в Response класс (Фасад):

public static function view($view, $data = array(), $status = 200, array $headers = array())

В этом случае он вызывает make метод этого класса, который заключается в следующем:

public static function make($content = '', $status = 200, array $headers = array())
{
return new IlluminateResponse($content, $status, $headers);
}
2

Другие решения

Вы на хорошем пути. Поставить вид & заголовок в переменной сначала:

$view = View::make('survey.do')
->with('theme', $survey->theme);

$response = Response::make($view, $status);
$response->header('Cache-Control', 'no-cache, must-revalidate')
->header('Expires', 'Mon, 26 Jul 1997 05:00:00 GMT');

return $response;
1