1

我正在创建一个表单来输入具有 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();

谢谢。

4

2 回答 2

2

如果我理解正确,您在产品表中保存类别的列名称是什么?

而不是使用 HTML 为什么不使用这样的东西:

use yii\helpers\ArrayHelper;

$form->field($model,'your column name')->dropdownlist(ArrayHelper::map(Kategori::find()->all(), 'id', 'nama'));
于 2016-02-22T06:30:28.297 回答
0

表中的字段类似于“category_id”。

因此,您的下拉代码应该是

echo Html::activeDropDownList($model,'category_id',$kategori,[]);
于 2016-02-21T22:45:17.083 回答