Задать вопрос
@Andre548

Как удалить элемент из массива?

Добрый день! Использую livewire. Есть карточка продуктов, в них присутствую дополнительные опции. Повесил на них событие wire:click, при клике выполняться метод по добавлению опции в массив. При попытке отменить опцию, срабатывает тот же метод по добавлению. Попытался сделать поиск по ид опции в массиве и удалению. Означально опции не выбраны. Открываем карточку, кликаем по опции, он проверяет массив и добавляет ее. Что бы снять опцию, так же кликаем по ней, проверяет массив и удаляет ее. Немного замудрено, но не знаю как реализовать по другому.
Вопрос в том, что он всеравно не хочет удалять из массива элемент.
public $ingredients = [];

public function ingredients($ingredient)
    {
        $found_key = array_search($ingredient['id'], array_column($this->ingredients, 'id'));

        if ($found_key) {
            unset($this->ingredients[$found_key]);
        } else {
            $this->ingredients[] = $ingredient;
        }
    }
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
F1uD
@F1uD
Мне кажется лучшим вариантом будет использывывать не клик, а сделать сами атрибуты ввиде checkbox элементов, которые будут "wire:model" и смогут передавать свои значения в массив, без дополнительных манипуляций в виде поиска и ручного удаления.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы