Yii2 выпадающий другой Activerecord

Я создаю форму для ввода продукта, который имеет activeDropdownList для выбора категории продукта из другой таблицы.
Я использую класс ActiveRecord в моделях товаров и категорий и использую модели категорий для заполнения раскрывающегося списка.
Когда я пытаюсь вставить продукт, это не удалось, потому что имя выпадающего списка.

Все остальные поля имя как name="CreateEvent[tanggal]">и выпадающий список моей категории: name="id">

Как интегрировать это без жесткого раскрывающегося атрибута?

На моем контроллере:

$kategori = $items = ArrayHelper::map(Kategori::find()->all(), 'id', 'nama');

// check post header, call $model->save() if post is exist
if($model->load(Yii::$app->request->post()) && $model->save()) {
Yii::$app->session->setFlash('status', 'success');
return $this->redirect(['create']);
}

На мой взгляд:

$form = ActiveForm::begin();
echo $form->field($model, 'nama')->input('text');
echo $form->field($model, 'lokasi')->input('text');
echo $form->field($model, 'tanggal')->widget(DatePicker:: classname(),
[
]);
echo Html::activeDropDownList($model,'id',$kategori,[]);
echo Html::submitButton('Submit', ['class'=>'btn btn-primary']);
ActiveForm::end();

Благодарю.

1

Решение

Если я правильно тебя понял,
Как называется ваша колонка в таблице товаров, где вы сохраняете категории?

вместо использования HTML почему бы вам не использовать что-то вроде этого:

use yii\helpers\ArrayHelper;

$form->field($model,'your column name')->dropdownlist(ArrayHelper::map(Kategori::find()->all(), 'id', 'nama'));
2

Другие решения

Поле в вашей таблице будет что-то вроде ‘category_id’.

Поэтому ваш выпадающий код должен быть

echo Html::activeDropDownList($model,'category_id',$kategori,[]);
0

По вопросам рекламы [email protected]