Множественные категории у товара

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
sergvic
Сообщения: 81
Зарегистрирован: 2014.01.24, 17:25

Множественные категории у товара

Сообщение sergvic »

Добрый день.
Встала такая проблема как лучше и красивее реализовать добавление товара в несколько категорий в карточке товара.
Самый простой это listbox с мультиселект но у него есть недостаток если в него кликнуть то сразу весь выбор сбрасывается и нужно снова выделять.
Хотелось бы наверное listbox и внутри него чекбоксы или делать список категорий с кнопками добавить и удалить.
Я так понимаю это реализовывается через pjax но никак не пойму технологию.
Помогите разобраться.
Может есть готовые примеры где можно подглядеть технологию.

Заранее большое спасибо.
Аватара пользователя
r3verser
Сообщения: 195
Зарегистрирован: 2012.04.01, 17:29
Откуда: Киев

Re: Множественные категории у товара

Сообщение r3verser »

Погляди http://ivaynberg.github.io/select2/ или аналог.
sergvic
Сообщения: 81
Зарегистрирован: 2014.01.24, 17:25

Re: Множественные категории у товара

Сообщение sergvic »

ElisDN писал(а):Я делал чекбоксами для Yii1.
Да я тоже об этом подумал, но не придумал как сделать прокручивающийся список этих чекбоксов, так как если категорий много то не очень хорошо смотрится и форма вытягивается из-за этого. Вы как этот вопрос решили ?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Множественные категории у товара

Сообщение ElisDN »

Код: Выделить всё

<div style="max-height: 300px; overflow: auto">
...
</div>
sergvic
Сообщения: 81
Зарегистрирован: 2014.01.24, 17:25

Re: Множественные категории у товара

Сообщение sergvic »

Спасибо
sergvic
Сообщения: 81
Зарегистрирован: 2014.01.24, 17:25

Re: Множественные категории у товара

Сообщение sergvic »

Так возник другой вопрос, как записать множественный выбор в связанную таблицу. Не могу найти подходяший пример. Выбор категорий сохраняется в переменную categories которая объявлена в классе Africles. Т. е как сохранить массив categories выбранных категорий в связанную таблицу. Конечно можно использовать обычные запросы insert но наверное есть более правильный способ.
Таблицы примерно такие
articles
id
name

arttocat
article_id
category_id
sergvic
Сообщения: 81
Зарегистрирован: 2014.01.24, 17:25

Re: Множественные категории у товара

Сообщение sergvic »

Ещё раз прочитав про AR я так понял что я иду не тем путём. Нужно объявить геттор getCetegories с hasmany. И при записей использовать link.
Так ли я понял систему записи.
Аватара пользователя
GreenJunior
Сообщения: 43
Зарегистрирован: 2014.07.20, 20:30

Re: Множественные категории у товара

Сообщение GreenJunior »

sergvic писал(а):Ещё раз прочитав про AR я так понял что я иду не тем путём. Нужно объявить геттор getCetegories с hasmany. И при записей использовать link.
Так ли я понял систему записи.
У меня та же проблема, не хочет записывать, но считывает отлично
Все когда-то начинали
sergvic
Сообщения: 81
Зарегистрирован: 2014.01.24, 17:25

Re: Множественные категории у товара

Сообщение sergvic »

Я решил эту проблему.
В функции afterSave класса AR я получаю список выбранных чекбоксов И с помощью self::getDb()->createCommand()->batchInsert заношу в промежуточную таблицу
Вот примерный код

Код: Выделить всё

public function afterSave($insert, $changedAttributes)
    {
        if (is_array($this->subway_ids) && count($this->subway_ids)) {
            Hospmetro::deleteAll(['hmIHospital' => $this->id]);
            $values = [];
            foreach ($this->subway_ids as $id) {
                $values[] = [$this->id, $id];
            }
            self::getDb()->createCommand()
                ->batchInsert(Hospmetro::tableName(), ['hmIHospital', 'hmCMetro'], $values)->execute();

        }
        parent::afterSave($insert, $changedAttributes);
    }
Ответить