Обновление массива предыдущей сессии Laravel


Обновление массива предыдущей сессии Laravel

15.07.2014 10:24:58 Просмотров 39 Источник

У меня есть вопрос о том, как я могу обновить свой предыдущий массив ? То что в настоящее время происходит с моим кодом это просто добавление нового массива сеансов вместо обновления объявленного ключа Вот мой код:

foreach ($items_updated as $key => $added)
{
    if ($id == $added['item_id'])
    {
        $newquantity = $added['item_quantity'] - 1;
        $update = array(
            'item_id' => $items['item_id'],
            'item_quantity' =>  $newquantity,
        );
    }
}

Session::push('items', $updated);
У вопроса есть решение - Посмотреть?

Ответы - Обновление массива предыдущей сессии Laravel / Updating previous Session Array Laravel

Ramesh Dahiya

15.07.2014 10:33:45

Вы можете использовать Session::forget('key'); для удаления предыдущего массива в сеансе.

И используйте Session::push для добавления новых элементов в сеанс.

Является ответом!
Joseph Silber

15.07.2014 11:12:03

$items = Session::get('items', []);

foreach ($items as &$item) {
    if ($item['item_id'] == $id) {
        $item['item_quantity']--;
    }
}

Session::set('items', $items);
user28864

03.05.2015 01:55:17

Я думаю, что это сработает для вас, если вы находитесь на laravel 5.0. Но также обратите внимание, что я не тестировал его на laravel 4.x, однако я ожидаю того же результата в любом случае:

//get the array of items (you will want to update) from the session variable
$old_items = \Session::get('items');

//create a new array item with the index or key of the item 
//you will want to update, and make the changes you want to  
//make on the old item array index.
//In this case I referred to the index or key as quantity to be
//a bit explicit
$new_item[$quantity] = $old_items[$quantity] - 1;

//merge the new array with the old one to make the necessary update
\Session::put('items',array_merge($old_items,$new_item));
Gursewak Singh

12.09.2020 03:04:07

Если у вас есть вложенные массивы внутри вашего массива сеансов. Вы можете использовать следующий способ обновления сеанса: $session()->put('user.age',$age);

Пример

Предположим, что у вас есть следующая структура массива внутри вашего сеанса

$user = [
     "name" => "Joe",
     "age"  => 23
]

session()->put('user',$user);

//updating the age in session
session()->put('user.age',49);

если Ваш массив сеансов имеет глубину n массивов, то используйте точку (.), за которой следуют имена ключей, чтобы добраться до n-го значения или массива, например session->put('user.comments.likes',$likes)

Помочь в развитии проекта:
Закрыть X