Я строю довольно простой интернет-магазин в SilverStripe. Я пишу функцию, чтобы удалить элемент из корзины (order
в моем случае).Неудачная сессия в SilverStripe
Моя установка:
Моя конечная точка возвращается в формате JSON для представления для использования в Ajax.
public function remove() {
// Get existing order from SESSION
$sessionOrder = Session::get('order');
// Get the product id from POST
$productId = $_POST['product'];
// Remove the product from order object
unset($sessionOrder[$productId]);
// Set the order session value to the updated order
Session::set('order', $sessionOrder);
// Save the session (don't think this is needed, but thought I would try)
Session::save();
// Return object to view
return json_encode(Session::get('order'));
}
Мой вопрос:
Когда я отправляю данные по этому маршруту, продукт получает удален, но только временно, то в следующий раз удалить называется, предыдущий элемент возвращается.
Пример:
объект Order:
{
product-1: {
name: 'Product One'
},
product-2: {
name: 'Product Two'
}
}
Когда я отправляю удалить product-1
я получаю следующее:
{
product-2: {
name: 'Product Two'
}
}
Который, кажется, работали, но я стараюсь удалите product-2
и получите следующее:
{
product-1: {
name: 'Product One'
}
}
СЫН А Б вернулся! Когда я извлекаю всю корзину, она все еще содержит оба.
Как получить order
?
Ах мудак! Я думал, что это может быть так, похоже, немного надзор ... Я мог бы пойти по запросу на отмененный метод. В любом случае, это блестяще работает сейчас. – nickspiel