Не удается получить cookie в очереди из запроса

Итак, у меня есть контроллер PHP, который отправляет куки в очередь, и мне нужно получить этот куки в следующий раз, когда я обновлю страницу (и вызову этот контроллер).

Когда контроллер вызывается, он проверяет, существует ли cookie в запросе, и если нет, он ставит его в очередь со сроком действия 15 минут.

Но когда этот контроллер вызывается снова, в запросе ничего не получается. Я просмотрел dev-tools->Network->Cookies и не нашел этот файл cookie ни в разделе «Запрос», ни в разделе «Ответ». В то же время getQueuedQookies() показывает, что этот файл cookie был добавлен в очередь. Код выглядит следующим образом:

$cookie = $this->request->cookie('id');
if($cookie=='id') {
    die('ID detected.');
} else {
    $this->cookieJar->queue('id', 'id', 15);
}

Затем выполняются другие действия, и в конце контроллер возвращает какую-то строку.

Что я делаю не так и как решить мою проблему? Был бы очень признателен за любую возможную помощь!


person Coffee    schedule 19.07.2016    source источник


Ответы (1)


Обновлять

измените test на имя вашей функции, и CookieJar будет автоматически введен.

public function test(CookieJar $cookieJar, Request $request){
    $cookie= $request->cookie('id');
    if($cookie=='id') {
        print('ID detected.');
    } else {
        $cookieJar->queue(cookie('id', 'id', 15));
    }
}
person theMohammedA    schedule 19.07.2016
comment
Я использую $this, потому что в функции __construct моего контроллера у меня есть аргумент (CookieJar $cookieJar) {$this-›cookieJar = $cookieJar;}, и если я попробую ваш код, я получу ошибку неопределенного свойства - person Coffee; 19.07.2016
comment
Вы добавили use Illuminate\Cookie\CookieJar;? а для $request он автоматически вводится в аргументы вашей функции, например. function sth(Request $request) и он не принадлежит контроллеру. - person theMohammedA; 19.07.2016
comment
да, я использовал Illuminate\blahblah - person Coffee; 19.07.2016