Использую Select2 виджет от картика (kartik\select2\Select2). Если элемент в справочнике не найден, сделал вывод кнопки "Добавить в справочник".
Код: Выделить всё
<?= $form->field($item, "[{$i}]product_id")->widget(Select2::classname(), [
'data' => ArrayHelper::map(Product::find()->all(), 'id', 'title'),
'options' => ['placeholder' => $item->getAttributeLabel('product_id')],
'pluginOptions' => [
'language' => [
'noResults' => new JsExpression('function () { return "<button type=\"button\" class=\"btn btn-info btn-xs\">Добавить в справочник</button>"; }'),
],
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
'allowClear' => true,
],
])->label(false) ?>