Как выделить опции поля множественного выбора?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Aff
  • Группа: Пользователь
  • Сообщений: 2
  • Регистрация: 02.02.2012

02.02.2012 08:57

При создании multiselect в админке через addFields что написать, чтоб выделить (selected) определенные поля?
или в каком файле внести изменения, чтоб они отметились?

так создаю multiselect:
$catsprod[] = ( array(
'label' => (string)$cat->getName(),
'value' => $cat->getId()
));
$fieldset->addField('category_id', 'multiselect', array(
'name' => 'category_id[]',
'label' => Mage::helper('blog')->__('Category Product'),
'title' => Mage::helper('blog')->__('Category Product'),
'style' => 'height:100px',
'values' => $catsprod,
));

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

02.02.2012 10:08

Ваша проблема состоит в том, что вы думаете, что заполнение формы значениеями должно происходить в методе addField.
А это не так.
А addFields - это ещё и написание метода с ошибкой.
На самом же деле, заполнение формы значениями происходит посредством метода setValues.
Вы бы посмотрели любой рабочий пример, например Mage_Adminhtml_Block_Cms_Block_Edit_Form::_prepareForm
Так вот, в методе setValues для поля типа "множественный выбор" (multiselect) надо указать ключ и значение.
Значением должен быть массив системных имён тех опций, которые требуется выделить.

#3 Aff
  • Группа: Пользователь
  • Сообщений: 2
  • Регистрация: 02.02.2012

03.02.2012 09:07

Спасибо большое, Очень помогло.

Поделиться темой: