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

#php #laravel

#php #laravel

Вопрос:

Я все еще новичок в Laravel, я пытаюсь удалить старые значения моей сессии.

Вот как я это делаю.

Контроллер

   public function progress(){

    $category_id = Session::get('category_id'); // [1,2,3]
    $category_type = Session::get('category_type'); //[1,2]

    $new_category_id = array_shift($category_id); //[2,3] new values
    $new_category_type_id = array_shift($category_type); //[2] new values

    session()->forget(['category_id', 'category_type']); //remove session [1,2,3] and store the new one

    session()->put('category_id', $category_id); //[2,3]
    session()->put('category_type', $category_type); //[2] the new values that i want to put in my session
 

  }
  

Я просто хочу удалить первый индекс моего старого сеанса, затем, после его удаления, я снова сохраню новые значения моего сеанса. Когда я попытался вызвать ее в своей функции в новом сеансе, сеанс пуст, что я делаю не так в своем коде?

Любая помощь будет очень признательна.

Комментарии:

1. Это работает для меня Session::put('name', 'sta');

2. я уже пробовал это, сэр, и это не работает: (

3. Вы уверены $category_id , что не пусто? попробуйте вручную session()->put('category_id', [2,3]);

4. когда я пытаюсь снова использовать session()->put('category_id', $category_id); и распечатать свой сеанс, сеанс пуст, сэр.

5. всякий раз, когда я пытаюсь ввести новое значение category_id and the category_type using session()->put('category_id', $category_id); , сеанс становится пустым, я не знаю почему.