Извлечение элементов из массива сеанса удаляет весь массив в laravel?

1

Я пытаюсь сохранить массив значений в переменной сеанса.

Поэтому, когда я пытаюсь добавить переменную, я просто делаю:

$request->session()->push('some.array', $id);

Когда я пытаюсь вытащить его, я делаю:

$request->session()->pull('some.array', $id);

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

Теги:
arrays
laravel-5
session-variables

1 ответ

2
Лучший ответ

Если вы внимательно посмотрите на документы, вы увидите, что

$request->session()->push('some.array', $id);

если на самом деле создание суб массива на сессии под названием [массив] поэтому, когда вы pull с помощью

$request->session()->pull('some.array');

вы на самом деле инструктируете laravel для удаления всего массива.

Поэтому, чтобы просто удалить только одного члена some.array вам придется

print_r( $request->session()->all() );

$tarray = $request->session()->pull('some.array');
unset( $tarray['an_item'] );
$request->session()->push('some.array', $tarray);

print_r( $request->session()->all() );
  • 0
    Но это только получит предмет, верно? Я хочу удалить конкретный элемент.
  • 0
    Я изменил свой ответ
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню