Использование Cookies в Laravel 4

Как вы используете куки в 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);