ответ неверен.. из-за того, что он не только определяет поле в базе данных, но также должен захватывать и хранить значения особым образом, в этом примере я демонстрирую сохранение как «1,2,3,6,8», используя одно поле
ПОЛНЫЙ КОД И ВСЕ ШАГИ НАХОДЯТСЯ НА: https://groups.google.com/forum/m/?hl=es#!topic/venenuxsarisari/z8vfPsvFFjk
здесь я помещаю только самые важные части ..
как упоминалось в предыдущей ссылке, добавлено новое поле в определение модели, класс и таблицу sql.
этот метод позволяет хранить в БД как "1,2,3", поэтому вы можете использовать только одно поле для связи нескольких выбранных значений, лучше использовать групповой блок но это довольно сложно, взгляните на класс контроллера AdminCustomers в каталоге контроллеров prestachop, у него есть группа множественного выбора, которая использует событие реляционной таблицы, хранящееся в одном поле
затем в массиве списка входных данных вспомогательной формы определите выбор как:
в начале не забудьте добавить эту строку:
// aqui el truco de guardar el multiselect como una secuencia separada por comas, mejor es serializada pero bueh
$this->fields_value['id_employee[]'] = explode(',',$obj->id_employee);
этот $obj представляет собой представление загруженного предыдущего сохраненного значения при переходе к редактированию... из этого объекта получите сохраненное значение поля вашего множественного выбора, сохраненное как «1,3,4,6»
а в вспомогательном списке входных данных поля форма определяет множественный выбор как:
array(
'type' => 'select',
'label' => $this->l('Select and employee'),
'name' => 'id_employee_tech',
'required' => false,
'col' => '6',
'default_value' => (int)Tools::getValue('id_employee_tech'),
'options' => array(
'query' => Employee::getEmployees(true), // el true es que solo los que estan activos
'id' => 'id_employee',
'name' => 'firstname',
'default' => array(
'value' => '',
'label' => $this->l('ninguno')
)
)
),
а затем также переопределить почтовый процесс
public function postProcess()
{
if (Tools::isSubmit('submitTallerOrden'))
{
$_POST['id_employee'] = implode(',', Tools::getValue('id_employee'));
}
parent::postProcess();
}
этот make хранится в БД как "1,2,3"
person
PICCORO Lenz McKAY
schedule
22.09.2017