За последние 24 часа нас посетили 20276 программистов и 1007 роботов. Сейчас ищут 382 программиста ...

Как сделать чтобы куки срабатывали сразу, а не после перезагрузки?

Тема в разделе "Laravel", создана пользователем Сереганек, 25 мар 2019.

Метки:
  1. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    При переходе по ссылке с параметрами в URL:
    https://domain.com/?analytics=0
    в посредниках записываю куку disable-analytics. Затем в шаблонизаторе делаю такую проверку:

    Код (Text):
    1.     @if (Cookie::get('disable-analytics') != 'value')
    2.         <!-- Google Tag Manager -->
    3.         <!-- End Google Tag Manager -->
    4.     @endif
    После загрузки страницы кука уже есть, но сработает она только после следующей перезагрузки страницы. Немного странно, т.к. посредник, в котором я создаю куку, предшествует загрузке страницы. Хотя может и не странно... Но как сделать, чтобы изменения вступали в силу уже при первой загрузке страницы?
     
  2. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Уже понял, что
    Код (Text):
    1. Cookie::get('disable-analytics')
    использовать нельзя, т.к. этот метод берет куки с текущего request. Только как правильно построить логику в данном случае? Пишу куки я следующим образом:
    Код (Text):
    1. Cookie::queue(Cookie::make('disable-analytics', 'we$CTY^%', 60*24*365));
    Куда-то же это значение записывается прежде чем попасть клиенту.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    неважно как вы куки записываете - они будут доступны только после перезагрузки
    если вы тут же ставите куку и на этой же странице выводите что-то из шаблона, что вам мешает использовать в шfблоне проверку на куку или переменную совместно?

    Код (Text):
    1.  @if ((Cookie::get('disable-analytics') != 'value') OR (!empty($vatiable))
    2.         <!-- Google Tag Manager -->
    3.         <!-- End Google Tag Manager -->
    4.     @endif