Как вы используете куки в Laravel 4?
Я уверен, что это просто, и что-то просто не нажимает на меня, но мне нужна небольшая помощь.
Насколько я могу судить, вам нужно создать такой файл cookie:
$cookie = Cookie::make('test-cookie', 'test data', 30);
Затем, не возвращая пользовательский ответ, как вы его устанавливаете? Какая польза от него настраивается с помощью настраиваемого ответа? Когда я когда-нибудь захочу это сделать?
Что делать, если я хочу установить cookie и вернуть представление? Что хорошего return Response::make('some text')->withCookie('test-cookie')
самом деле делает меня, кроме как показывать мне, как использовать withCookie()
?
Как я уже сказал, я, вероятно, просто что-то пропустил, но как бы я использовал куки-файлы практическим способом …
… как кто-то вводит информацию, регистрируется и т. д., и я хотел бы установить cookie и перенести их на страницу, сделанную с представлением?
Чтобы вернуть файл cookie с представлением, вы должны добавить свое представление к объекту Response и вернуть все это. Например:
$view = View::make('categories.list')->with('categories', $categories); $cookie = Cookie::make('test-cookie', 'test data', 30); return Response::make($view)->withCookie($cookie);
Да, это немного больше, чтобы писать. Причиной является то, что Views и Response являются двумя отдельными вещами. Вы можете использовать Views для анализа содержимого и данных для различных целей, не обязательно для отправки в браузер. Для этого и нужен ответ, и почему, если вы хотите установить заголовки, файлы cookie или такие вещи, это делается через объект Response.
Как описано в других ответах, вы можете достаточно присоединить Cookies к Response / Views / Redirects.
$cookie = Cookie::make('name', 'value', 60); $response = Response::make('Hello World'); return $response->withCookie($cookie);
или
$cookie = Cookie::make('name', 'value', 60); $view = View::make('categories.list'); return Response::make($view)->withCookie($cookie);
или
$cookie = Cookie::make('name', 'value', 60); return Redirect::route('home')->withCookie($cookie);
Но вам не нужно прикреплять свой Cookie к вашему ответу. Используя Cookie: queue (), вы также будете использовать Cookie :: make (), ваш файл cookie будет включен с ответом при его отправке. Никакой дополнительный метод withCookie () не требуется.
Источник: http://laravel.com/docs/requests#cookies
Это то, что я предпочитаю использовать: в любое время вы можете поставить в очередь куки-файл, который будет отправлен в следующем запросе
Cookie::queue('cookieName', 'cookieValue', $lifeTimeInMinutes);
Вы также можете прикреплять файлы cookie к таким перенаправлениям, как это
return Redirect::route('home')->withCookie($cookie);