За последние 24 часа нас посетили 15027 программистов и 1709 роботов. Сейчас ищут 910 программистов ...

Установка Cookies

Тема в разделе "Laravel", создана пользователем Зингер, 31 мар 2021.

  1. Зингер

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

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    Прошу не пинать сильно за нубский вопрос. Только разбираюсь.
    При установке
    PHP:
    1. $response = new Illuminate\Http\Response('Hello World');
    2. $response->withCookie('name', 'value', $minutes);
    Подскажите, зачем при определении экземпляра нужно добавлять строку 'Hello World'?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.582
    Симпатии:
    1.760
    Ну потому что здесь тело ответа будет Hello World. Если у тебя другое тело ответа - добавляешь другое.
    --- Добавлено ---
    PHP:
    1. return
    2. response()->json([
    3.     'name' => 'Abigail',
    4.     'state' => 'CA',
    5. ])->withCookie('name', 'value', 'minutes');
    --- Добавлено ---
    PHP:
    1. return response()->view("a", ["some" => "data"])->withCookie("name", "value");
     
    Зингер нравится это.
  3. Зингер

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

    С нами с:
    20 июл 2017
    Сообщения:
    127
    Симпатии:
    7
    А-а-а! Понятно.
    То что нужно! Но почему то в документации этого не нашел.
    Везде
    PHP:
    1. return view(...);
    Именно этого и не хватало.
    Спасибо.
    --- Добавлено ---
    Продолжу.
    Объясните пож-та, что я делаю не так?
    PHP:
    1. public function setCookie(Request $request) {
    2.         $responsible = new \Illuminate\Http\Response('set cookies');
    3.         $time_value = time();
    4.         $cookies = cookie('time', $time_value, 10);
    5.         $responsible->withCookie($cookies);
    6.         return 'Не было установлено! Сейчас установлено. '
    7.                 . 'Время=' . date('d', $time_value) . '.' . date('m', $time_value) . '.' . date('Y', $time_value) . ' '
    8.                 . date('G', $time_value) . ':' . date('i', $time_value) . ':' . date('s', $time_value)
    9.                 . '<br>' . $responsible;
    10.     }
    11.  
    12.     public function getCookie(Request $request) {
    13.         $time_cookies = $request->cookie('time');
    14.         $period_sec_value = time() - $time_cookies;
    15.         return 'Было установлено! С момента последнего первого входа прошло ' . $period_sec_value . ' секунд';
    16.     }
    При обращении к getCookie, cookie('time') почему то пусто, т.е.$period_sec_value =time()
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.582
    Симпатии:
    1.760
    Ну так вы не вернули из действия правильный респонс. Создали, и профукали. У меня же не просто так везде return.

    Всё в доке есть, читать надо внимательно. https://laravel.com/docs/8.x/responses#view-responses
    У ларки неплохая дока, немного недоструктурированна, на мой взгляд, но охватывает все повседневные задачи.
     
    Зингер нравится это.