/** * Формирование Html кода поля для вывода в форме * @param ActiveForm $form объект форма * @param array $options массив html атрибутов поля * @param bool|int $index инднкс модели при табличном вводе * @return string */ public function renderInput(ActiveForm $form, array $options = [], $index = false) { $data = $this->modelField->getDataValue(); if (empty($data)) { return false; } $options = ArrayHelper::merge($this->options, $options, ["multiple" => true]); $widgetOptions = ArrayHelper::merge(["data" => $data], $this->widgetOptions, ["options" => $options]); $attr = $this->getFormAttrName($index, $this->modelField->attr); return $form->field($this->modelField->model, $attr)->widget(MultiSelect::className(), $widgetOptions); }
public function multiselect($items, $options = []) { //Defaults $opts = array_merge(["options" => ['multiple' => "multiple"], "data" => $items, "clientOptions" => ["includeSelectAllOption" => true, 'numberDisplayed' => 2]], $options); return $this->widget(MultiSelect::className(), $opts); }