2016-07-19 7 views
0

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

Когда контроллер вызывается, он проверяет, существует ли файл 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); 
} 

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

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

ответ

0

Update

тест изменение вашего имени функции и 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)); 
    } 
} 
+0

Я использую $, потому что в моем контроллере __construct функция У меня есть аргумент (CookieJar $ cookieJar) {$ this-> cookieJar = $ cookieJar;}, и если я пытаюсь кода я получаю сообщение об ошибке неопределенного свойства – Coffee

+0

Вы добавили 'use Illuminate \ Cookie \ CookieJar;'? и для '$ request' он автоматически вводится в ваши аргументы функции, например. 'function sth (Request $ request)' и не принадлежит контроллеру. – theMohammedA

+0

yup, я использовал Illuminate \ blahblah – Coffee