Удалить указанный c элемент (сеанс) из корзины - торт php 3,8 - PullRequest
0 голосов
/ 27 апреля 2020

Друзья, у меня есть список товаров в корзине, который я добавляю для сессий. введите описание изображения здесь

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

$carrinho = $this->request->session();
$carrinho->delete('carrinho.0');
return $this->redirect(['action' => 'index']); 

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

<?= $this->Html->link(__('Delete'), ['action' => 'delete', $carrinho->index]); ?>

Я попытался найти в индексе и go через такой параметр, но это не правильно. Я попробовал var_dump ($ cart), и он также ничего не отображает.

 public function delete($index = null)
    {
    $carrinho = $this->request->session();
    $carrinho->delete('carrinho.$index');
    return $this->redirect(['action' => 'index']);
    }

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

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Спасибо за внимание!

пробовал таким образом, но это не сработало!

 public function delete($index = null)
    {
        $carrinho = $this->request->session();
        $carrinho->delete("carrinho.$index");
        return $this->redirect(['action' => 'index']);
    }


и в index.ctp:

<?= $this->Html->link(__('Delete'), ['action' => 'delete', $carrinho->index]); ?>

Я отладил $ carrinho, и результат на картинке. введите описание изображения здесь

Проще говоря, значение индекса не передается параметром. Когда я сообщаю вручную, все идет хорошо! $ carrinho-> delete ("carrinho.0"), например.

Но когда я пытаюсь получить "индекс carrinho $", не работает! Я отладил его $ carrinho-> read () для всех, кто может проанализировать его на изображении.

Еще раз спасибо!

0 голосов
/ 27 апреля 2020

$carrinho->delete('carrinho.index'); удалит вещь, буквально называемую carrinho.index, из сеанса. Он вообще не ссылается на переменную $index. То, что вы хотите, это $carrinho->delete("carrinho.$index");. Обратите внимание, что кавычки изменяются с одинарных на двойные, так что он выполняет интерполяцию переменных (например, если $index равно 3, то это разрешается до carrinho.3; если это были просто одинарные кавычки, то он будет искать то, что на самом деле называется carrinho.$index что, конечно, не существует).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...