Ларавель, возвращая ответ с парамсом
Я хочу сделать что-то вроде этого:
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); }
Вы на хорошем пути. Сначала поместите заголовок view & в переменную:
$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;