какой использовать Cookie или Session?Laravel 5.7 - хранить данные в течение 5 минут - PullRequest
0 голосов
/ 18 февраля 2019

ребята, я пытаюсь сделать 4 шага оплаты в своем приложении в laravel 5.7

, затем я хочу сохранить эти данные где-то за 4 шага, пока платеж не будет завершен, и после этого я хочу сохранить их набаза данных

эти 4 шага содержат:

  1. выберите продукт
  2. выберите аксессуары
  3. введите адреса
  4. введите данные платежа

Теперь, пожалуйста, предпочитайте ваши способы

, какие использовать? cookie или сеанс или что-то еще ?

Я бы использовал сеанс, но я хочу, чтобы эти данные были уничтожены через 5 минут, и если я выберу время сеансадо 5 минут все данные сеанса будут уничтожены, как мой сеанс входа в систему, и я просто хочу уничтожить сеанс, который я создал.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Сеансы предоставляют способ хранения информации о пользователе по нескольким запросам. Для меня лучше выбрать https://laravel.com/docs/5.7/session. В настройках конфигурации драйвера сеанса вы можете определить, где будут храниться данные сеанса для каждого из них.запрос, например cookie, где сеансы хранятся в безопасных, зашифрованных файлах cookie.Тогда для вашей задачи об уничтожении данных вы можете использовать метод забудьте удалить часть данных из сеанса.Если вы хотите удалить все данные из сеанса, вы можете использовать метод сброса.

// Forget a single key...
  $request->session()->forget('key');
//or
  $request->session()->flush();
0 голосов
/ 18 февраля 2019

Данные, которые вы хотите временно сохранить, представляют собой данные о ценах корзины с точки зрения электронной коммерции.Вы можете сохранить эти данные в базе данных со столбцом отметки времени expires_at, имеющим значение current time + 5 minutes.

Затем в вашей глобальной области видимости модели, которая всегда будет фильтровать запросы и получать только данные с истекшим сроком действия:

/**
     * The "booting" method of the model.
     *
     * @return void
     */
    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('expires_at', function (Builder $builder) {
            $builder->where('expires_at', '<=', Carbon::now());
        });
    }
  • Преимущество этого заключается в том, что вы можете использовать данные для отчетов об оставленных корзинах.
  • В этих данных, в основном по адресам, продукты будут содержать не все детали, а ссылки с использованием внешних ключей на соответствующие таблицы.Если это не так, я бы порекомендовал вам нормализовать вашу базу данных.
  • Кроме того, если вы хотите, вы можете удалить эти данные в еженедельном кроне, чтобы удалить, скажем, все записи с истекшим сроком на прошлой неделе.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...